YAMAGUCHI::weblog

海水パンツとゴーグルで、巨万の富を築きました。カリブの怪物、フリーアルバイター瞳です。

cvs2svn

研究室で使っている共有ライブラリの管理はCVSで行ってるんですが,最近ようやくSubversionに移そうという雰囲気になってきたので早速やることになりました.まあ俺しか管理してる人がいないので必然的に俺が担当になるわけでして.
というわけで作業ログ的な物を残しておきます.

  • まずはいつものportsの更新.
# portsnap fetch
# portsnap update
# portsdb -Uu
# pkgdb -aF
# portversion -v
# portupgrade -a
  • cvs2svnのインストール
# cd /usr/ports
# portinstall ./devel/cvs2svn

ここで、CVSサーバとSubversionサーバが異なることが非常にめんどうであることに改めて気が付く。仕方がないので、CVSサーバにcvs2svnを入れて、そこでCVSレポジトリをSubversionのdumpに変換してからscpでSubversionサーバに送り、それをrestoreするという良くある手法に落ち着くことにした。

  • CVSサーバ側
# cvs2svn --dump-only --dumpfile=DUMPFILE.dump --encoding=Shift_JIS /path/to/cvs
# scp DUMPFILE.dump foo@some.host:/path/to/svnroot/
  • Subversionサーバ側
# cd /path/to/svnroot
# svnadmin load /path/to/repos < DUMPFILE.dump

これでとりあえずOK。いらないディレクトリとかは一回checkoutしてから消して、もう一回commitすればOK。
あと今回cvs2svnのオプションで--encoding=Shift_JISいれたのは日本語ファイルがあったせい。こうしないとcannot access なんたらとか出て変換できないからね。