lisz-works

プログラミングと興味を貴方に

SVN 更新/コミットでエラーの原因:「Unable to connect to a repository at URL」

【スポンサーリンク】

TortoiseSVN

バージョン管理に使うSVNのアプリ、TortoiseSVNを使っていたら発生したエラー

Unable to connect to a repository at URL

についてです。

ぼくが実際に起こしてしまった原因と、解決方法に解説していきます!

経緯

ぼくは職場では、「TortoiseSVN」を使って、SVNでバージョン管理をしています。

作業用にローカルでSVNを作成していました。

こんな感じの構成。

フォルダ構成

  1. ルートの下ににリポジトリを作成
  2. ルートの下にプロジェクトフォルダを作成
  3. プロジェクトフォルダに、リポジトリチェックアウト

このプロジェクトフォルダの下で作業をして、SVNへもアクセスしていました。

しかしルートフォルダの命名がよくなかった。

一過性のモノにしてしまっていたのです。

しかしながら、もう少し色々と使うことになりそうだったのです。

なので、ルートフォルダの名前を変更しました。

フォルダのリネーム

その後、作業後に更新やコミットを行うと……

SVNのエラー

Unable to connect to a repository at URL

こんなエラーが発生……

なんじゃこりゃ……

原因

ということで、調べたり考えたりなんやかんやしていたら……わかりました。

問題はリネームにありました。

上の説明だと「いや、だろうな(笑)」って感じだと思います。

が、リネームから操作までに、時間がかなり空いたので、パッとわかりませんでした(笑)

チェックアウトは対象URLに行う

よくよく考えると当たり前なのですが……

チェックアウトしたSVNは、チェックアウトした「URL」を記憶しています。
そして、そのURLに対して操作を行います。

なので「更新」や「コミット」などで、リポジトリを操作と

「このURLに対してコマンドやるよ!」

と動きます。

しかし、ぼくはルートフォルダの名前を変更してしまいました。

URLは絶対パスと同じ形式なので、

「指定したURL(パス)にアクセスできないんですけど!!!(怒)」

とTortoiseSVN氏は申していたわけです。

教訓

ということで、今後の為に教訓です。

  • リポジトリの入っているパス名は、変えないようにしよう!
  • リポジトリ自体のフォルダ名は、変えないようにしよう!
  • リポジトリを作るときは流動的にならないパスに作ろう!

もし同じことをしてしまったら

もし同じようなことをしてしまったら、対処法は2つです。

  1. TortoiseSVNからリポジトリの「再配置」を行う。
  2. 別フォルダにチェックアウト→更新ファイルを上書き→コミット

再配置という操作で修正が可能なようです。

詳しくはこちらを参照です。

作業コピーの再配置

ぼくの場合、小さいプロジェクトだったのもあって、特に調査もせずに2番目の操作で解決してしまいました。

あとがき

普通にフォルダを操作する「だけ」な感覚で行ってしまったことで頭を抱えてしまいました……

SVNの仕組みを知らず(というか考えずに)に使っていた為、こんなことに……