Subversionで公開されているオープンソースを追いかけるにはsvkが便利です。
Debian環境でApache Geronimoを追いかける場合には、次のようにします。
svkのインストール
aptitude install svk
リポジトリのネーミングルール
Apache geronimoのリポジトリは、下記にあります。
https://svn.apache.org/repos/asf/geronimo/trunk
他のオープンソースを追いかけるときに名前が重複しないようにネーミングルールを決めます。
//mirror/サーバ名/ミラーするパス
サーバ名は、分り易い適当な長さにすると便利です。
Apache geronimoの場合は、//mirror/apache/geronimo/trunkになります。
ミラーの作成
svk mirror //mirror/apache/geronimo https://svn.apache.org/repos/asf/geronimo/trunk Repository $HOME/.svk/local does not exist, create? (y/n)y
これで$HOME/.svk/localにローカルリポジトリが作成されます。
svn ls file://$HOME/.svk/local
これでローカルリポジトリを確認することができます。
ミラーの同期
svk sync //apache/geronimo/trunk --skipto HEAD
これでリモートリポジトリとローカルリポジトリを同期化します。
skipto HEADオプションを付けないとRevision 1からHEADまでの同期化をするので、とても時間がかかります。
ローカルブランチの作成
svk mkdir //apache -m "added local branche" svk mkdir //apache/geronimo -m "added local branche" svk cp //mirror/apache/geronimo/trunk //apache/geronimo/trunk -m "added local branche"
これでローカルブランチが作成されます。
Subversiondenoからの利用
svkのローカルリポジトリは、Subversionのリポジトリと同じ形式です。
svkとsvnコマンドを使い分けるのは面倒なのでsvnserverやApacheからsvnコマンドで利用できるようにシンボリックリンクを貼ると便利です。
$ grep svn /etc/inetd.conf svn stream tcp nowait svnuser /usr/bin/svnserve svnserve -i -r /home/svnuser/.svn-repo
このように設定されている場合
$ cd $HOME/.svn-repo $ ln -s $HOME/.svk/local svn-pub $ svn ls svn://localhost/svn-pub apache/ mirror/ $