ksaitoの日記

日々試したことの覚え書き

オープンソースの追いかけ方

移転しました。

自動的にリダイレクトします。

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リポジトリと同じ形式です。
svksvnコマンドを使い分けるのは面倒なので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/
$