CVS→Subversion移行
https://bitarts.jp/blog/archives/001304.htmlに引き続き、今日はCVSからリポジトリを移行してみる。とりあえず移行するのは当サイトコンテンツ(CVSで管理してます)のリポジトリ。
RPMでcvs2svnをインストールすればいいんだけど、いくつか依存パッケージがあるので一緒にインストール。
# rpm -ivh swig-1.3.19-3.i386.rpm
# rpm -ivh subversion-python-1.2.3-1.rh90.i386.rpm
# rpm -ivh cvs2svn-1.2.1-1.noarch.rpm
で、変換はこれだけ。
$ cvs2svn -s /path/to/svnroot /path/to/cvsroot
できあがったリポジトリはAnonymousリードオンリーの状態なので、とりあえず簡単な認証で読み書きを許可させることにする。conf/svnserve.confに次の設定を入れる。
[general]
anon-access = none
auth-access = write
password-db = passwd
conf/passwdにユーザー名とパスワードを書く。
[users]
username = PASSWORD
conf/passwdはパーミッションを0600に変えておいたほがいいと思う。
$ chmod og-rw conf/passwd
よし!TortoiseSVNからチェックアウト!URLはこんな感じで、/trunk下のディレクトリを指定する。
svn://HOSTNAME/path/to/svnroot/trunk/moduleName
が、途中でエラー。なぜか所々にわけわかんないファイルが混ざってるみたい。そういう場合は、TortoiseSVNのリポジトリブラウザで削除してしまう。これでチェックアウトに成功!以上!
ちなみに、cvs2svnを使わず、履歴をあきらめて、cvs exportしてからsvn importする方法も書いておく。(こっちのほうが速いし、変換中にコケる可能性も少ないらしい)
CVSからエクスポート。
$ cvs export -D 2005-12-12 moduleName
Subversionリポジトリを作る。
$ svnadmin create /path/to/svnroot
上に書いた方法でリポジトリへの書き込みを許可させる。そうしないとインポートできない。さらに、環境変数SVN_EDITORかEDITORにログを書くためのエディタを指定しておく必要がある。
export EDITOR=vi
そしてインポート。
$ svn import modulrName \
svn://sv.pixy.ne.jp/home/miyamae/svn/modulrName
それにしても、TortoiseSVNはかなりイイ感じです。