バージョン管理に使うSVNのアプリ、TortoiseSVNを使っていたら発生したエラー
Unable to connect to a repository at URL
についてです。
ぼくが実際に起こしてしまった原因と、解決方法に解説していきます!
経緯
ぼくは職場では、「TortoiseSVN」を使って、SVNでバージョン管理をしています。
作業用にローカルでSVNを作成していました。
こんな感じの構成。
- ルートの下ににリポジトリを作成
- ルートの下にプロジェクトフォルダを作成
- プロジェクトフォルダに、リポジトリチェックアウト
このプロジェクトフォルダの下で作業をして、SVNへもアクセスしていました。
しかしルートフォルダの命名がよくなかった。
一過性のモノにしてしまっていたのです。
しかしながら、もう少し色々と使うことになりそうだったのです。
なので、ルートフォルダの名前を変更しました。
その後、作業後に更新やコミットを行うと……
Unable to connect to a repository at URL
こんなエラーが発生……
なんじゃこりゃ……
原因
ということで、調べたり考えたりなんやかんやしていたら……わかりました。
問題はリネームにありました。
上の説明だと「いや、だろうな(笑)」って感じだと思います。
が、リネームから操作までに、時間がかなり空いたので、パッとわかりませんでした(笑)
チェックアウトは対象URLに行う
よくよく考えると当たり前なのですが……
チェックアウトしたSVNは、チェックアウトした「URL」を記憶しています。
そして、そのURLに対して操作を行います。
なので「更新」や「コミット」などで、リポジトリを操作と
「このURLに対してコマンドやるよ!」
と動きます。
しかし、ぼくはルートフォルダの名前を変更してしまいました。
URLは絶対パスと同じ形式なので、
「指定したURL(パス)にアクセスできないんですけど!!!(怒)」
とTortoiseSVN氏は申していたわけです。
教訓
ということで、今後の為に教訓です。
- リポジトリの入っているパス名は、変えないようにしよう!
- リポジトリ自体のフォルダ名は、変えないようにしよう!
- リポジトリを作るときは流動的にならないパスに作ろう!
もし同じことをしてしまったら
もし同じようなことをしてしまったら、対処法は2つです。
- TortoiseSVNからリポジトリの「再配置」を行う。
- 別フォルダにチェックアウト→更新ファイルを上書き→コミット
再配置という操作で修正が可能なようです。
詳しくはこちらを参照です。
ぼくの場合、小さいプロジェクトだったのもあって、特に調査もせずに2番目の操作で解決してしまいました。
あとがき
普通にフォルダを操作する「だけ」な感覚で行ってしまったことで頭を抱えてしまいました……
SVNの仕組みを知らず(というか考えずに)に使っていた為、こんなことに……