Practice of Programming

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

CVSとの連携捕捉

SVKCVSとの連携ですが、cvs commit すると、CVSディレクトリのEntriesファイルとかが変更されて、svk で管理するのがめんどいです。


svk propedit svn:ignore とかで指定出来ますが、いちいちやるのは大変ですね。
svk は、.subversion/config を見ているようですので、ここで設定してやるのがいいです。

[miscellany]
### Set global-ignores to a set of whitespace-delimited globs
### which Subversion will ignore in its 'status' output.
# global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store

CVSを追加して、ここのコメント外せばいいです。
で、次のようにする。

% svk mkdir //cvs_repos/sumibi
% svk import ~/cvs/sumibi //cvs_repos/sumibi/
% cd ~/svk
% svk co //cvs_repos/sumibi

これで、importした、CVSリポジトリをチェックアウトできましたが、CVSディレクトリがありません。
元のCVSレポジトリをチェックアウトしているところから、CVSディレクトリをコピーします。

% cd ~/cvs/sumibi/
% find -type d -name 'CVS' -exec cp -r {} ~/svk/sumibi/{} \; 

とかすれば、問題なく動くはず。


すでに、CVSディレクトリもsvkの管理下になってしまった。という場合には、いったん。

% cp -r svk/sumibi ./sumibi.back

とかやって。

% find -name CVS -type d -exec svk remove {} \;
% svk commit -m 'remove CVS dir'
% cd sumibi.back
% find -type d -name 'CVS' -exec cp -r {} ~/svk/sumibi/{} \;

ってやればいいかと。