ふたつの川うるおう日記
2006-11-05 (Sun)
_ [Server] svnsyncでリポジトリミラー
svnsyncでリポジトリミラーの作成を試してみました。最初同期先で実行しないとダメなのかと思ったらどっからでもOKでした。なんだったら第3者のマシンで同期元から同期先に同期することも可能です。ただ、同期先に別途何かをコミットすると以降同期が取れなくなるので、ReadOnlyなミラーとして使う必要があります。
用途としては、負荷分散のために開発者のコミット用URLとそれ以外の閲覧者用URLを分けたり、リアルタイムにバックアップするのに便利そうです。
使い方をさらっと。
同期先リポジトリを作成して、フックスクリプトpre-revprop-changeを作成する
(pre-revprop-change.tmpl をリネームして書き換えてもOK)。
cd /どっか/ svnadmin create mirrorsvn echo '#!/bin/sh' > mirrorsvn/hooks/pre-revprop-change chmod 755 mirrorsvn/hooks/pre-revprop-change
同期先初期化
- 同期先ローカルファイルシステム、同期元WebDAV経由。
svnsync init file:///どっか/mirrorsvn/ https://www.seasar.org/svn/s2container/
- 同期先WebDAV経由、同期元WebDAV経由。同期先のコミット権限に認証を必要としている場合は認証情報を付与。
svnsync init --username ユーザ名 --password パスワード https://www.example.org/mirrorsvn/ https://www.seasar.org/svn/s2container/
同期実行
- 同期先ローカルファイルシステム、同期元WebDAV経由。
svnsync sync file:///どっか/mirrorsvn/
- 同期先WebDAV経由、同期元WebDAV経由。
svnsync sync --username ユーザ名 --password パスワード https://www.example.org/mirrorsvn/
あとは定期的に同期実行を実行すればOK。同期元のフックスクリプトpost-commitにコマンドを仕込めば、同期元へのコミットと同時に同期先への同期実行も可能。
リポジトリがたくさんある時は、post-commitでrsync走らせて同期の方がいろいろ楽な気もしないでもない。
[ツッコミを入れる]
[]


