【问题标题】:Delete merge history in a branch in TFS删除 TFS 分支中的合并历史记录
【发布时间】:2011-03-02 09:29:36
【问题描述】:

假设我有一个主分支和一个开发分支。 假设我将 dev 中的一些东西合并到 main 中。

  • 我签入合并
  • 现在我决定“哎呀,dev 分支还没有真正准备好让我合并到 main 中。”
  • 我想告诉 TFS:从 main 中删除该更改集并忘记合并曾经发生过。

回滚变更集很容易——我可以使用 TFS powertools ROLLBACK 命令。在主分支上(带有 /changeset /recursive 标志)

但是,我会从回滚中收到一条警告,指出文件的合并历史记录尚未被删除。

效果:稍后,当 dev 准备好合并到 main 中时,之前回滚的文件中的更改不会合并到 Main 中(这是因为 TFS“认为”这些合并已经完成。

我的目标: 当我回滚时,让 TFS 删除合并历史记录,这样当我稍后将 dev 合并到 main 时,所有内容都会合并。

我该怎么做?

顺便说一句:我使用的是 TFS 2008 SP1

【问题讨论】:

    标签: visual-studio version-control tfs


    【解决方案1】:

    TFS 2008 中的回滚不是那么好。它本质上是对先前版本的重新签入。由于您丢失了该合并历史记录,因此下次进行合并时,您可能需要在命令行中 /force 进行合并。那应该让它忽略以前的合并历史已经存在的事实。

    【讨论】:

    • 我想到了强制,但这不会尝试重新合并所有更改历史记录吗? (以前的合并等)听起来好像没有一个很好的解决方案。
    • 这就是 TFS 的优点。尝试强制,并在签入之前查看发生了什么。合并后您随时可以撤消。
    • 我一直在寻找试图解决这种情况的方法。我希望 UI 有 force 选项,或者回滚有 remembermergehistory 选项。
    【解决方案2】:

    我遇到了类似的问题。我认为可能对您有所帮助的一件事是 tf.exe merge /discard 选项。这允许您执行文件的虚假合并,并从合并历史记录中删除更改而不实际执行合并。

    http://msdn.microsoft.com/en-us/library/bd6dxhfy(v=vs.80).aspx

    希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多