cvs のリポジトリを subversion に移行する

新しく管理しているコードは全部 subversion で管理していますが、
昔のやつは未だに cvs を使ってたので subversion に移行してみました。
というわけで、備忘録のようなメモ

cvs の場合はプロジェクト毎にリポジトリを作ってましたが、
subversion の場合はまとめて管理ができるので、1つのリポジトリにまとめたいところ。

cvs2svn を何も考えずに使うと、cvs と同じようにプロジェクト毎に新しくリポジトリを作ってしまうので、
repo1/{branches,tags,trunk}
repo2/{branches,tags,trunk}
といった感じになってしまいます。

これをちゃんと subversion 流に
repo/proj1/{branches,tags,trunk}
repo/proj2/{branches,tags,trunk}
こういう感じにしたいわけです。

それで、次のようなシェルスクリプトを作って一括で移行しました。

% cat cvs2svn.sh
REP=bz2
for i in *;do
cvs2svn --dump-only --dumpfile=$i-dump $i
svn mkdir -m 'ディレクトリ追加' file:///home/bz2/svn/repository/$REP/$i
svnadmin load --parent-dir $i /home/bz2/svn/repository/$REP < $i-dump;
done

やってることは次のようになります。
・cvs2svn でダンプファイルを作る
・予めリポジトリ上にプロジェクト名のディレクトリを作っておく
・svnadmin load でさっきダンプしたデータをロードする。この時、--parent-dir でプロジェクト名を指定しておく。

こうするとちゃんと subversion 流でデータの移行ができます。
過去の履歴もちゃんと引き継がれているのでハッピーです。

トラックバック(0)

このブログ記事を参照しているブログ一覧: cvs のリポジトリを subversion に移行する

このブログ記事に対するトラックバックURL: http://blog.bz2.jp/bz2mt/mt-tb.cgi/108

コメント(2)

うちでは画像が壊れたりバイナリが怪しいことになることがあったみたいです(-kbしてなかったのかも)
そういうの無かったですか?

覚えてないですけど、そういうので困った記憶はないです。
subversion はデフォルトでテキストの置換処理とかしないはずなので、cvs から出力されたデータが正しければ問題ないのかもしれませんね

ウェブページ

Powered by Movable Type 4.21-ja

このブログ記事について

このページは、masatoが2006年1月30日 01:54に書いたブログ記事です。

ひとつ前のブログ記事は「PHP勉強会に参加してきた」です。

次のブログ記事は「Yahoo でカスタマイズされた apache のまとめ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。