3

コードを Perforce から TFS に移行しました。すべて問題ないように見えますが、あるソリューションから別のソリューションへの順方向および逆方向の統合に問題があります。これは私にとってショーストッパーです。

2 つの異なるソリューションがあり、2 つのプロジェクトは両方のソリューションで共通ですが、個別に異なるコピーがあります。したがって、前方統合は、アプリケーション全体を sol1 から sol2 にマージして、共通のプロジェクトの競合を解決します。解決したら、コードをソリューション 1 (逆統合) にマージします。理解すべき点は、共通のプロジェクトのみをマージする必要があり、それ以外はすべて除外できることです。

TFSで同様のセットアップを行うことはできますか?

4

2 に答える 2

1

はい、このシナリオは TFVC で可能ですが、あまり一般的ではありません。いくつかのオプションがあります:

  1. ソリューション レベルでブランチ ルートを作成し、ファイルをソリューション 1 からソリューション 2 にマージします。マージ操作の一部として、マージしたくないファイルを除外します。後で、フォルダー レベルで前後にマージできます。

  2. フォルダー関係を作成しますが、フォルダーをブランチ ルートにしないでください。これにより、いつでも 1 つのフォルダーを別のフォルダーとマージできますが、これらのフォルダー自体はブランチとして表示されません。

  3. 各プロジェクト レベルでブランチ ルートを作成し、各プロジェクトを個別にマージします。これにはいくつかの欠点があります (この場合、ブランチ ルートをネストできないため、ソリューション全体をブランチすることはできません)。

または、別の方法で問題にアプローチすることもできます。

  1. 共通コードを含む別のソリューションを作成し、パッケージ管理 ( NuGet パッケージ発行) を使用して、両方のソリューション間で依存関係を共有します (基本的に 3 つのソリューションを作成します)。

  2. ワークスペース マッピングを使用して、共通コードをバージョン管理の 1 つの場所に保持し、コードをディスク上の別の場所にマップします。コードでコンパイラ ディレクティブ、構成、またはさまざまな抽象化 (インターフェイス、抽象クラス) を使用して、ソースをさまざまなバージョンにコンパイルできます。

于 2015-04-22T16:26:38.183 に答える
0

あなたが提供した最初のオプション Jesse と多かれ少なかれ正確な解決策を得ました。基本的に、ソリューションの 1 つに共通のプロジェクトを作成し、それらを別のソリューションに分岐する必要があります。後で、ソリューション 1 から 2 にマージして、ソリューション 2 でマージされたファイルをチェックインし、ソリューション 2 から 1 にマージして、ソリューション 1 でマージされたファイルをチェックインできます。

于 2015-05-08T10:25:12.167 に答える