cvsからSubversionへの移行について。
下記サイトで WinCVS1.3b14-SJIS-12 を入手して、
あろはだよCVS
既存のリポジトリがちゃんと読めるか確認します。
手順
※てっきりSJISでログを入れていたかと思ってたら履歴が文字化けして、EUCJPだったりしました。必ず文字コードは確認しましょう
文字コードの確認には、リポジトリ内のファイル(ログが入っている)をエディタなどで開いて確認するか、もしくは、cygwin等のnkfで確認出来るかと
$ nkf -guess mage.log,v EUC-JP (LF)
↑EUC-JPでした
cygwin 1.7のsetup.exeでcvsとcvs2svnを入れました。
(ただし、svnはWin32のコマンドライン版だったような気がします)
あとは、出力したいディレクトリで
cvs2svn --encoding=euc_jp --encoding=utf_8 --default-eol=CRLF -s /svn/hoge /CVSROOT/hoge
などとして変換します
上記は、
という設定なので、環境に合わせて変えてみて下さい。
こちらの環境では、"--encoding=utf_8"が足りないと
日本語ファイル名のファイルがあったせいか、
ERROR: Unable to convert a path 'branches/avendor/unko.txt へのショートカット.lnk' to internal encoding. Consider rerunning with one or more '--encoding' parameters or with '--fallback-encoding'. Exception exceptions.AttributeError: "'NoneType' object has no attribute 'error'" in <bound method Popen.__del__ of <subprocess.Popen object at 0xXXXXXXXXX>> ignored
というようなエラーがでてしまいましたので入れてあります。
cvsでチェックアウトしたものと、
svnでチェックアウトしたものを比較して確認してみます。
diff -ru --exclude="CVS" --exclude=".svn" (cvsでチェックアウトしたディレクトリ) (svnでチェックアウトディレクトリ) > out.diff
のようにチェックします。
例えば、
diff -ru --exclude="CVS" --exclude=".svn" cvs_hoge svn_hoge > out.diff
といった感じです。
あとは、out.diffの内容をみて問題ない違いが許容範囲ならOKです。
こちらの例では、"$Id: " でのチェックアウト時の文字列展開の違いだけが差分になっていたのでOKと判断しました。
No comment. Comments/Subversion/cvsからの移行?