1

個々のCVSプロジェクトを含む8年前のCVSマスターツリーを正常に変換してgitにインポートしました。私はcvs2git変換が個々のCVSリポジトリに何をしたかを理解しようとしています。

幸い、私はまだマスターCVSツリーを持っていて、何もデプロイしていないので、これを再度実行できます。変換したものを調べることができるgitコマンドを探しているので、各CVSリポジトリを個別に変換する必要があるかどうかを判断できます。

4

2 に答える 2

2

サブプロジェクトの 1 つに対してcvs2git発行することで、何が行われたかを確認できます。git log

git log -- <directory>

そのコマンドが完全な履歴を返す場合は、cvs2gitすべてのサブプロジェクトを 1 つにマージしました。あなたのコメントに基づいて、これは事実のようです。

ここで選択肢があります。リポジトリを分割するか、結合したままにするかです。これは常に明確な決定であるとは限りません。また、CVS でリポジトリを分割する動機は、git とは異なります。

サブモジュール、サブツリー、またはネストされたリポジトリに分割せずに、新しい git リポジトリを数週間試すことをお勧めします。git bisectこれにより、一般的な git コマンドに慣れ、プロジェクトをネストするときに使用するのがより難しい のようないくつかの優れた git 機能を試すことができます。さらに、CVS と比較して、分岐、特にマージが非常に簡単であることがわかると思います。リポジトリをまったくフラクチャする必要がない場合もあります。

そうすることにした場合は、トピックに関する他の回答を読んでください。レポ自体の分割は簡単です。これは github からの簡単なチュートリアルです。Google で簡単に検索すると、さらに多くの情報が表示されます。

于 2012-08-21T14:26:37.907 に答える
1

cvs2git を使用して、8 年前の CVS リポジトリを変換しました。結果のリポジトリで「gitk --all」を使用すると、変換がどのように行われたかをよく把握できることがわかりました。ですから、このコマンドをお勧めします。

ただし、CVS リポジトリ全体を単一の Git リポジトリに変換することはしませんでした。あなたのように、私の CVS リポジトリには、実際にはいくつかの異なるプロジェクトが含まれていました。各プロジェクトは異なるディレクトリ内にありました。そのため、プロジェクトごとに 1 つずつ、いくつかの変換を実行しました。関心のある CVS リポジトリーの特定のサブディレクトリーを cvs2git に指定するだけです。これにより、ディレクトリーの履歴が Git リポジトリーに変換されます。そのため、プロジェクトごとに 1 つずつ、いくつかの Git リポジトリを作成することになりました。これにより、各リポジトリの履歴が大幅に改善されました。このアプローチも試してみることをお勧めします。

于 2012-08-31T14:18:41.900 に答える