【问题标题】:TFS discard not working on rollback changesetsTFS 丢弃不适用于回滚变更集
【发布时间】:2013-07-06 05:14:38
【问题描述】:

我们的工作已经在我们系统的主干中完成,但随后被拉到我们的下一个版本中。我们创建了一个分支,其更改仍在主干中,然后仅回滚主干中的更改。

这给我们留下的就是,每当我们想用最近工作的工作更新分支时,它会尝试合并我们不想要的回滚变更集。

我尝试在 TFS 命令提示符下使用 /discard 命令,但不断收到“没有要合并的更改”。下面是我的语法:

D:\Projects\Big Project\Trunk>tf merge /discard /version:C28350~C28350 /recursive "D:\Projects\Big Project\Trunk" "D:\Projects\Big Project\Branch"

我什至尝试切换源和目标都无济于事:)

变更集出现在候选变更集列表中,用于从主干到分支的潜在合并。自初始分支以来,工作分支已经进行了几次签入,但没有签入。

有没有人有使用过discard命令的经验以及为什么它在这里可能不起作用??

感谢您的建议

【问题讨论】:

  • 我在上面的命令中添加了 /baseless 标志,这给了我在从变更集中丢弃正确文件方面寻找的结果。不确定这是否是最终解决方案。也许更了解这个标志的人可以解释这意味着/暗示什么??

标签: merge rollback tfs-sdk


【解决方案1】:

通读tf rollback MSDN 选项/keepmergehistory 正好适用于这些场景。 (请参阅帮助文档末尾的相关示例)。

您的情况不同,以下是我将遵循的步骤(命令提示符省略):

tf merge /version:C28350~C28350 /recursive "D:\Projects\Big Project\Trunk" "D:\Projects\Big Project\Branch"

tf checkin /recursive "D:\Projects\Big Project\Branch"

tf rollback /version:XXXX /recursive /keepmergehistory "D:\Projects\Big Project\Branch"

关于步骤的评论:

  1. 没有/discard 选项

  2. 检查该更改,即使您对此不感兴趣;请注意下一步中 XXXX 的变更集编号...

  3. 现在回滚该特定更改,并使用/keepmergehistory,这样 TFS 就不会再询问您是否要合并此更改。

或者,您应该能够回滚主干中的回滚,然后使用此标志重新应用 - 但我不确定/keepmergehistory 是否适用于两种方式.. 这里是:(不确定我把参数那里正确...)

tf rollback /version:C28350 /toversion:C28349 /recursive "D:\Projects\Big Project\Trunk"

tf rollback /version:XXXX /toversion:XXXX-1 /recursive /keepmergehistory "D:\Projects\Big Project\Trunk"

希望这会有所帮助:-)

【讨论】:

    【解决方案2】:

    这可以通过告诉 TFS 在执行合并时忽略历史来实现。换句话说,可以使用无根据的合并来完成:

    D:\Projects\Big Project\Trunk>tf merge /discard /version:C28350~C28350 /recursive /baseless "D:\Projects\Big Project\Trunk" "D:\Projects\Big Project\Branch"

    【讨论】:

      猜你喜欢
      • 2012-05-08
      • 2015-10-13
      • 2016-09-07
      • 1970-01-01
      • 2013-10-24
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 2018-02-22
      相关资源
      最近更新 更多