2

私たちは TFS 2010 を使用しており、Dev -> QA -> Production の 3 つのブランチがあります。

この特定の例では、メソッド パラメーターの型と名前を "Guid reportGuid" から "int reportId" に変更することにしました。この変更を QA ブランチで行い、チェックインしました。そして今、この変更を QA から Dev ブランチにプルしようとしています。通常は逆方向に行われますが、この例外的なケースでは、私たちが行ったことを行いました. これがマージツールのスクリーンショットです。スクリーンショットからわかるように、Dev ブランチのファイルの最後のチェックインは変更セット番号 30282 を取得し、QA - 31002 (30282 よりも新しい) を取得しました。私にとっては、新しい変更が古い変更を上書きする必要があることは明らかです。しかし、TFS マージが行うことは反対です。QA ブランチ (31002) からの新しいコードに Dev ブランチ (30282) からの古いコードを適用し、結果は変更されません。

TFSマージがそのように機能する理由を誰かが説明できますか? 前もって感謝します。

4

3 に答える 3

3

TFS は間接的な統合、つまりあるブランチから別のブランチへのマージをサポートしていないようです。親にマージしてから、他のブランチ (DEV) にマージする必要があります。この投稿を参照してください。 a6e9-32b6e875a15a/

于 2012-12-07T01:25:59.900 に答える
3

このスクリーンショットでマージの競合が発生しているように見えますか?

まず、Visual Studio/TFS のマージ ツールを使用しないでください。これは実際には効果的ではなく、直感的でもありません。無料の KDiff3 または Beyond Compare を使用して、より優れた自動マージとより使いやすいインターフェイスを取得してください。

第 2 に、私の知る限り、TFS でのマージの一時的な一貫性などはありません (間違っているかもしれませんが、聞いたことはありません)。あなたが言及した2つの変更セットは同じブランチにないため、TFSはどの変更セットが他の後に発生したか、およびそれが何を意味するかを気にしません。

第 3 に、マージの方向は、branch1 から branch2 に、または branch2 から branch1 に変更されません。変更されるのは、両方のブランチが直接関連しているかどうかだけです。

私にとって、あなたの問題は主に GUI ベースのものであるか、競合が発生した場合にまったくスマートではない自動マージ機能を使用した可能性があります。

  1. James Manning の投稿に従って、マージ ツールを変更してください
  2. 自動マージを避ける
于 2012-06-06T16:05:22.367 に答える