0

2 GB を超える CVS リポジトリで cvs2git 移行を実行しました。オブジェクトが同じであることを確認するために、新しい git リポジトリと CVS モジュールを走査するスクリプトを作成しました。テキスト ファイルは問題なく移行され、sha1sum も同じであることがわかりました。ただし、バイナリ ファイルはすべて異なる sha1sum を持ち、CVS (-kb) ではすべてバイナリとしてフラグが付けられます。私が cvs2git とバイナリ ファイルについて読んだ他のすべてのトピックは、通常、バイナリ ファイルがバイナリ ファイル (-kb) としてフラグ付けされていないことに問題があると非難していますが、ここではそうではありません。他に何が問題になる可能性がありますか?

移行を行うために実行するスクリプトは次のとおりです。

./Python-2.7.3/python ./cvs2svn-trunk/cvs2git \
--blobfile=/path/to/git-blob.dat \
--dumpfile=/path/to/git-dump.dat \
--username=cvs2git \
/cvsroot/database

cd /gitroot; mkdir database; cd database; git init

cat /path/to/git-{blob,dump}.dat | git fast-import
4

2 に答える 2

1

これらのバイナリ ファイルには、次の形式の文字列が含まれています$Id ...$か? それは少し前に私にとって問題でした(バイナリファイルで置き換えられました$Id$)が、最新バージョンで修正される必要があります。このコミットを参照してください。

いずれにせよ、16 進エディタを使用して実際の違いを確認することをお勧めします。

また、オプション ファイルを使用していないことにも気付きました。そのとき cvs2git がどのデフォルトを使用するかはわかりませんが、カスタマイズされたバージョンの を試してみる価値はありcvs2git-example.optionsます。

于 2012-07-19T19:58:56.617 に答える
1

標準の CVS リポジトリではなく、リポジトリが CVSNT リポジトリである場合、問題を説明できます。CVS は、ファイルがバイナリであるかどうかにかかわらず、すべてのリビジョンについて 1 回記録しますが、CVSNT はリビジョンごとにファイル タイプリビジョンを記録します。cvs2svn/cvs2git は、CVSNT のリビジョンごとの属性ではなく、ファイル全体のバイナリ属性のみを読み取ります。したがって、ファイルが CVSNT でバイナリとしてマークされていることを認識しません。

これが、cvs2svn/cvs2gitが CVSNT リポジトリからの変換を正式にサポートしていない主な理由です。

于 2012-07-19T18:37:42.713 に答える