WebOS Goodies

WebOS の未来を模索する、ゲームプログラマあがりの Web 開発者のブログ。

WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。
Subscribe       

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

以上です。風邪で休んでる間にリポジトリの場所が変更されちまった!Σ(‾□‾;ガーン・・・な〜んてときにご活用ください(笑)。

関連記事

この記事にコメントする

Recommendations
Books
「Closure Library」の入門書です。
詳しくはこちらの記事をどうぞ!
Categories
Recent Articles