2010年4月22日木曜日

cvs2git

githubが楽しいので、昔のOSSプロジェクトのcvsレポジトリをgitに変換できないか試してみた。
  1. cvsレポジトリをファイルシステムでアクセスできるできるところにもってくる
  2. http://cvs2svn.tigris.org/servlets/ProjectDocumentList からcvs2svnの最新版(2.3.0)をもってくる
  3. 中に入っているcvs2gitを実行したいので、実行パスを通す
  4. 中に入っている cvs2git-example.options をcvs2git-cvsproject.optionsにコピーしてカスタマイズする
    • r'test-data/main-cvsrepos', をcvsレポジトリのファイルパスに r'/home/cvsroot/cvsproject',
    • ログメッセージがeucだったので、
      ctx.cvs_log_decoder = CVSTextDecoder(
      [
      #'latin1',
      #'utf8',
      'ujis',
      'ascii',
      ],
      #fallback_encoding='ascii'
      )
  5. mkdir cvsproject ; cd cvsproject ; git init
  6. cvs2git --options=cvs2git-cvsproject.options
  7. cat cvs2svn-tmp/git-blob.dat cvs2svn-tmp/git-dump.dat | git fast-import
以上。
git branch -a
gitk --all
とかすると、tagやbranchもきちんとできている。

committer / author がすべて 「username
となっているのでフィルタをかけて 「username 」に修正する必要がありそう。
これで、githubで公開してもよいか、確認しよう。

ソースの方は古いバージョンのautoconf / automakeを使っていたせいか、エラーが出てビルドできない。(最新のコミットは2005年6月)
こちらも調整が必要。

0 件のコメント: