読者です 読者をやめる 読者になる 読者になる

YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

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 なんたらとか出て変換できないからね。