Subversion でリポジトリの場所が変わったら
今日は Subversion でサーバー側のリポジトリの場所が変更された際に、ローカルの作業用コピーに登録されている URL を手軽に変更する方法をご紹介します。まだ Subversion に関してなにも記事を書いていない状態なので恐縮ですが、会社で必要になったので備忘録です。ご勘弁ください (^^ヾ
Subversion では、ローカルの作業用コピーの各フォルダに対応するリポジトリの URL が記録されています。そのため、サーバー側のリポジトリの場所が変更されると、そのままではアクセスできなくなってしまいます。もちろん作業用コピーを削除して再び checkout すればよいのですが、時間がかかりますし、コミット前の変更はすべて消えてしまいます。
そこで、作業用コピーの状態を変更することなく URL だけを書き換えることが必要になります。それを実現するのが switch コマンドの --relocate オプションです。書式は以下のようになります。
svn switch --relocate <旧URL> <新URL> [作業用コピーのパス]...
- 旧URL
- 以前に使用していたリポジトリの URL です。作業用コピーのパス で指定したディレクトリで "svn info" を実行することで確認できます。
- 新URL
- 旧URL に対応する新しいリポジトリの URL です。
- 作業用コピーのパス
- URL を変更する作業用コピーのパスです。空白区切りで複数指定できます。省略したときはカレントディレクトリが使用されます。
旧URLと新URLは変更のあった部分までを指定すればよく、必ずしも作業用コピーのパスに対応する URL をすべて記述する必要はありません。例えば、作業用コピー "/home/project1" に対応するリポジトリが "svn://old.sourcewalker.com/project1" から "svn://new.sourcewalker.com/project1" に変更された場合は、以下のコマンドを実行すれば移行できます。
svn switch --relocate svn://old.sourcewalker.com svn://new.sourcewalker.com /home/project1
以下のコマンドを実行すれば、リポジトリに正常にアクセスできているかが簡単に確認できます。
svn status --show-updates /home/project1
以上です。風邪で休んでる間にリポジトリの場所が変更されちまった!Σ(‾□‾;ガーン・・・な〜んてときにご活用ください(笑)。
詳しくはこちらの記事をどうぞ!
この記事にコメントする