よかろうもん!

アプリからインフラまで幅広くこなすいまどきのクラウドエンジニアが記す技術ブログ

CVSからのSubversionにデータ移行手順(Cygwin編)

cygwinを利用してCVSのデータをSubversionに移行する際に日本語ファイル名が文字化けすることが多々あります。
その原因として考えられるものに、cygwinの環境で日本語(SJIS)が扱える状態になっていないということが考えられます。
そんなときはまずはnkfをインストールして、日本語ファイル名が文字化けしないようにします。

以下の手順で各種インストールを実施します。
cvs2svnのインストール

$ wget http://cvs2svn.tigris.org/files/documents/1462/41596/cvs2svn-2.1.0.tar.gz
$ cd cvs2svn-2.1.0
$ make install

日本語ファイルが文字化けしないようにするための設定

まずはnkfのインストール

$ wget http://prdownloads.sourceforge.jp/nkf/20770/nkf207.tar.gz
$ tar zxvf nkf207b2.tar.gz
$ cd nkf207
$ make
$ cp nkf.exe /usr/bin/ .

続いてロケールの追加です。

$ wget http://www.sixnine.net/cygwin/cygwin-doc/moconv.sh
$ sh ./moconv.sh

以下が作成されていることを確認

/usr/share/locale/ja_JP.SJIS

最後に環境変数の設定

$ export LANG=ja_JP.SJIS

ここまで終了したら、最後にcvs2svnを実行して、Subversion用のリポジトリを作成します。
svnリポジトリの作成

$ cvs2svn --encording=Shift_JIS --fallback-encoding=Shift_JIS -s [Subversionリポジトリ] [CVSリポジトリ]

サンプルコード

$ cvs2svn --encording=Shift_JIS --fallback-encoding=Shift_JIS -s /home/Administrator/svn_repo /cygdrive/c/sample/test

SubversionリポジトリSubversion用のリポジトリが作成されるので、このディレクトリを配置するだけで利用可能な状態です。
念のため確認される場合は、以下のコマンドで試してみては?

$ svn info file:///home/Administrator/svn_repo

これで日本語ファイル名も文字化けせずに移行できるはずです。