CVSからSubversionへの移行(番外)
一気に移行できればよかったのだが、Subversionへの移行中もCVSで作業していて、その後環境が整ったので、移行中にCVSに起きた変更をSubversionリポジトリにもコミットする。その際、CVSでタグをちゃんと付けていなかったので、差分を作るためにcvs2svnを使う。
- 1.変更が起きたディレクトリのみで仮のSubversionリポジトリを作る。
% cvs2svn -s /var/tmp/svntmp /path/to/cvsroot/some/dir
- 2.変更を含むリビジョンを確認する。
% svn log file:///var/tmp/svntmp
- 3.リビジョンnからリビジョンm(=n+1)までの差分を作り、作業コピーに適用する。
% cd ~/work/svn/some/dir % svn diff file:///var/tmp/svntmp -r n:m | patch -p1
patchの引数-p1はtrunkの分の階層を無視するため。また、ここではブランチを使っていないと仮定。
- 4.コミットする。
% svn ci -m "merged from cvs repository"
変更が複数回ある場合は3-4を繰り返す。特にこだわらなければm=最新リビジョンとして、一度にパッチを当ててしまってもいい。