今日は普通の更新。SVKはCVSとの連携もなかなかうまくできます。
% cd ~/cvs/ % svk import //cvs_repos/project_x project_x % cd ~/svk % svk checkout //cvs_repos/project_x
とかすると、CVSでチェックアウトしているproject_xが、
svkで管理されます.
この際、各ディレクトリにあるCVSディレクトリもimportされているので、checkout先のディレクトリでsvkコマンドを打てばSVKのリポジトリに対してとなり、cvsコマンドを打てば、CVSのリポジトリに対してになるという感じになります。smerge とか、push とか、pull とか, syncは使えないので、cvs update で pull、cvs commit で push みたいなイメージとなりますが。
もう一つ、SVKのmirrorはSVN以外のものにも使えます。http://svk.elixus.org/?MirrorVCP参照。
% svk mirror //mirror/PROJECT cvs::pserver:anonymous:@HOST:/DIRECTORY:MODULENAME % svk sync //mirror/PROJECT % svk copy //mirror/PROJECT //local/PROJECT % svk checkout //local/PROJECT
pserver の部分は、extに変えることもできます。(anonymous: としているのは、空のパスワードを打ち込むのを省略するため)
この場合は、sync や、ミラーからローカルへのsmerge, pull などはできますが、ローカルからミラーへの smerge, push はサポートされていません。CVSディレクトリもありませんので、cvs update などを作業ディレクトリでできません。diff を取ってパッチをcvsでチェックアウトしたディレクトリで変更を適用ってことでしょうか。前者の方が良い気がする..ので、これの使いようがいまいち不明...なんですが、どう使うもんでしょうかね?
※ローカルからミラーへのsmerge、pushがサポートされれば、普通のSVKの使いかたで使えますが。