SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【Subversion】svnsync 使用例

問題

svnsync でリポジトリをコピーしたいです。

答え

コピー元サーバーかコピー先サーバーでsvnsyncを実行するのが効率が良いのではと思われる。

コミット内容を読み込むのと、コミットするのを繰り返すが、せめてどちらかをローカルで file:///~ で参照すれば速いので。

今回はコピー元サーバーでsvnsyncを実行してみる。

準備

コピー元サーバーにはもともとドメインやIPアドレスは振ってあるのだが、file:// で参照する場合は使わない。

コピー先サーバーはIPアドレスなりドメインなりでアクセスできるようにしておく。

コピー先リポジトリの hook/pre-revprop-change を有効にして、実行権限付与、exit 0 するようにしておく。

svnsync init

コマンド形式

$ svnsync init DestURL SrcURL Option

$ svnsync init https://example.com/project1 file:///var/svn/project1 --source-username=user --source-password=password --sync-username=svnsyncuser --sync-password=svnsyncpassword
Copied properties for revision 0

コピー元が file:// だとパスワード不要だけど。

svnsync sync

コマンド形式

$ svnsync sync DestURL

$ svnsync sync https://example.com/project1 --source-username=user --source-password=password --sync-username=svnsyncuser --sync-password=svnsyncpassword

svnsync sync はエラーで止まっても、ユーザーが Ctrl+C などで止めたとしても、中断したところから再開できる。

最新リビジョンまで同期した後でコピー元のリビジョンが進めば、再実行することで同期する(差分が反映される)。

その後

最新リビジョンまで同期した後は、定期的に sync 、または post-commit フックなどでコミットのあるたびに sync すれば最新の状態を保つことができる。

関連するメモ

コメント