我们遇到过这样的情况,工作已经在我们系统的主干中完成,但随后被拉到我们的下一个版本中。我们创建了一个分支,更改仍在主干中,然后仅回滚主干中的更改。
然而,留给我们的是,每当我们想用最近的工作更新分支时,它都会尝试合并我们不想要的回滚变更集。
我已经尝试在 TFS 命令提示符下使用/discard 命令,但一直收到“没有要合并的更改”。这是我的语法如下:
D:\Projects\Big Project\Trunk>tf merge /discard /version:C28350~C28350 /recursive "D:\Projects\Big Project\Trunk" "D:\Projects\Big Project\Branch"
我什至尝试切换源和目标无济于事:)
该变更集出现在从主干到分支的潜在合并的候选变更集列表中。自最初分支以来,工作分支已经有一些 checkin ,但没有签到分支。
有没有人有使用丢弃命令的经验,为什么它可能在这里不起作用?
谢谢你的建议
最佳答案
通读 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"
对步骤的评论:
/discard
选项 /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"
希望这可以帮助 :-)
关于merge - TFS 丢弃不适用于回滚变更集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7455454/