svnsync

svn1.4から使えるリポジトリ間の同期ができるすばらしい機能。リモートで同期をかけることでバックアップとしても使える。

おお、こんな便利なものがあるとは知らなかった。

前述Retrospectivaでリモートのリポジトリと同期するためには、これを使ってまずローカルにリモートのリポジトリのミラーをつくって、Retrospectivaからはそのミラーを指すように設定しなくてはならないようだ。

使い方

インストール

svn 1.4以上を入れていれば、勝手に入っている。以下を打って確かめてみよう^^

svnsync
まっさらなリポジトリ作成
svnadmin create hogehoge
なんだかよくわからない設定

リポジトリの中のhook/ディレクトリの中にひとつのファイルを作る。

cd hogehoge

cd hook
cp pre-revprop-change.template pre-revprop-change
vi pre-revprop-change
# 何もしないで exit 0 するように書き換える

chmod +x pre-revprop-change

なにやってんだか良くわからないので、あとで勉強して追記する。

外部リポジトリとの同期を設定

作ったリポジトリを同期したい外部リポジトリと紐付ける

svnsync init file:///srv/svn/repos/hogehoge https://svn.example.com/hogehoge

この時点では、まだリポジトリが紐づいただけで、中身はコピーされていない。

同期を実行
svnsync sync file:///srv/svn/repos/hogehoge

Revision 0からはじまって、1,2,3とひとつずつ変更を適用するかたちで内容の同期がなされる。