2017-03-22 5 views
0

私のプロジェクトの2つのブランチ間でTFSマージの問題があります。問題を説明しようとしましょう。TFSロールバック後の子ブランチとのマージ

  1. 私は、私は別のことでF1にparellelに開発される他の機能F2の要求を受け取ったいくつかの機能F1に勤務し、C1
  2. を言うことにいくつかのコードをコミットルートブランチX
  3. を持っていますチーム。
  4. 私はXからさらに別のブランチを作成したブランチX
  5. からC1をコミット私はロールバックY
  6. の名前でRの子ブランチを作成し、F2が開発されているZを言うことができます。
  7. 私は、ブランチYでF1を開発し、さらにコードをコミットします。
  8. 一方、F2は終了し、ブランチZでテストされます。ブランチZからブランチZへF2をマージします。
  9. F1はテスト済みで安定しています。これは、バックブランチにマージする必要があるX

それを行うには、私が最初にF2コードを同期するためにYにXをマージする必要があり、その後、私は、ブランチX

に戻って、分岐YにF1をマージする必要がありますしかし、私がそうしようとするたびに、TFSはコミットC1の変更(C1に追加された新しいファイルを削除し、編集したファイルのコードを元に戻す)をロールバックします。

私はXをYにマージしようとしていて、多くのファイルが含まれているので、2,3時間もかかったすべての競合を手動で解決しました。 しかし、私はYをXにマージしているときに再び起こっています。 私は今この問題について一巡してきました。

私はこれをより簡単に解決できる方法はありますか?ありがとう

+0

チェリーピックマージを使用してチェンジセット番号をマージし、ロールバックコミットをスキップできます。 – jessehouwing

+0

@ jessehouwingチェリーは、選択されたチェンジセットでのみ正しいものを選んでいますか?しかし、私はYからXに後ろに合併するときにそれはまだ問題にならないでしょう、私はそれをスキップすることはできません、私は? –

+1

もちろん、あなたはチェリーセットを選択して、それぞれのチェンジセットをマージする必要があります。 – jessehouwing

答えて

1

これはロールバックを実行するときに/keepmergehistoryオプションを使用しなかったようです。

tf rollback /keepmergehistory 

このオプションでは、ロールバックされ チェンジセットの1つ以上が枝を含めるか、または変更をマージする場合にのみ効果があります。同じオプションを指定すると、同じソースと同じ ターゲットの間で後でマージして、ロールバックしている変更を除外したい場合に指定します。

Source Link

あなたは今、あなたは桜のような回避策としてチェンジセットの各マージ選ぶ使用できるため、この質問TFS merge doesn't pick up rollback changeset(s)

での詳細な説明とIsaiah4110からの回答を見てみることができjessehouwingが提案されています。

関連する問題