Practice of Programming

プログラム とか Linuxとかの話題

svkとCVSの連携

今日は普通の更新。SVKCVSとの連携もなかなかうまくできます。

% 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の使いかたで使えますが。