回滚后TFS合并问题与子分支

时间:2017-03-22 08:00:38

标签: visual-studio-2015 tfs merge

我的项目的两个分支之间的TFS合并有一个令人不安的问题。让我试着解释一下这个问题。

  1. 我有一个根分支X
  2. 我参与了一些功能F1并提交了一些代码,说它是C1
  3. 我收到了另一个功能F2的请求,该功能将由另一个团队在parellel开发给F1。
  4. 我创建了一个名为Y的子分支
  5. 我从分支X回滚提交C1
  6. 我从X创建了另一个分支,让我们说Z正在开发F2。
  7. 我继续在分支Y上开发F1并为其提交更多代码。
  8. 同时F2完成并在分支Z上测试。我们将F2从分支Z合并到分支X.
  9. 现在F1已经过测试并且稳定。它必须合并回分支X
  10. 要做到这一点,我必须首先将X合并到Y中以同步F2代码,然后我将必须将分支Y中的F1合并回分支X

    但每次我尝试这样做时,TFS都会回滚提交C1的更改(删除C1中添加的新文件和编辑文件中的撤消代码),甚至不给我机会解决冲突。

    我甚至尝试将X合并到Y并手动解决了所有冲突,这些冲突花了我近2-3个小时,因为涉及很多文件。 但是当我将Y合并回X时,这又发生了。 我已经在这个问题上四处走动了一段时间了。

    有没有办法可以更轻松地解决这个问题?感谢

1 个答案:

答案 0 :(得分:1)

在执行回滚时,您似乎没有使用/keepmergehistory选项。

tf rollback /keepmergehistory
  

此选项仅在有一个或多个变更集时才有效   您正在回滚包括分支或合并更改。指定这个   如果您希望将来在同一源和同一源之间进行合并,请选择该选项   目标是排除您正在回滚的更改。

     

Source Link

您可以查看来自 Isaiah4110 的答案,并在此问题中详细说明TFS merge doesn't pick up rollback changeset(s)

现在你可以使用cherry pick merge将每个变更集合作为 jessehouwing 建议的解决方法。