subversionリポジトリのミラー

Tracって素ではローカルのsubversionリポジトリしか見れないのね。
しょうがないのでローカルにミラーすることにした。
で、どうやってミラーするかなんだけどSVKじゃなくてsvnsync使ってみた。

まずはミラー先で普通にリポジトリ作って

svnadmin create /var/repos/hoge

hook/pre-revprop-changeを作って

#!/bin/sh
exit 0

pre-revprop-changeに実行権限与えて

chmod +x /var/repos/hoge/hooks/pre-revprop-change

ミラーを初期化。

svnsync init file:///var/repos/hoge http://example.com/repos/hoge

構文は
svncsync init [ミラー先] [ミラー元]


同期するときは

svnsync sync file:///var/repos/hoge

これをcronで定期的に回せばミラーの出来上がり。

ミラー元にコミットされたタイミングで同期を取りたければミラー元ホストのhook/post-commitに

#!/bin/sh
svnsync sync --username USER --password PASS http://example.mirror/repos/hoge

とかして実行権限与えておけばいい。

Tracからはこのローカルのミラーをリポジトリとして指定すればいい。