2012-03-07 62 views
7

我做了一个分支,第一次我从源代码合并到分支时,出现了一大堆旧的变更集,它说没有合并,但它们在分支之前就已经存在了,我确认它们是那里。TFS 2010:分支 - 为什么变更集说他们从分支机构之前没有合并过?

示例: 说我在源中有9个变更集时从源分支到目标。 变更10在Source中进行。 我从源合并到目标和TFS告诉我变化6和7和10需要合并(即使6和7在那里我分支之前,我可以确认这些变化是在目标)

我我是TFS的新手,当我第一次开始实施分支和合并时发生了这种情况。 我做的最新的分支没有做到这一点。

现在我们有一个中继,然后是1个分支,用于下一个版本的进行中的QA,以及另一个分支用于生成修补程序。 QA分支有这个问题,但是当我做了修补程序分支时,它很好。

回答

7

我碰到过这几次。我最终刚刚从源头到目标合并了“流氓”候选变更集。我审查了正在进行中的合并,并确定没有任何更改。承诺合并摆脱了这些候选变更集。我认为如果不能解决问题,我可以回滚。

编辑:看样子,如果您升级到TFS 2010,则存在会造成额外的合并候选(见http://support.microsoft.com/kb/2135068

“已更名为多次或有任何的一个分支项目中的错误有多个其他物品占据其名称空间(通过添加/删除组合)将失去与其他分支上相应物品的关系。“

至于分辨率,支持文章说:

“要解决额外的合并候选的问题,应使用/丢弃选项要做到这一点,从命令运行以下格式的合并。行:

tf merge <source branch> <target branch> /r /discard:CXXX~CYYY

在这个例子中,XXXYYY代表变更丢弃此合并已被签入之后,不需要的考生将不再显示为将来合并范围的变更标识也。请注意,因为展示在TFS 2010中的合并算法中,在源分支和目标分支中删除的项目都会导致合并的更改。在这些情况下,最好不要放弃更改集,以便正确更新合并历史记录。 “

+0

编辑根据支持文章。 – PabloC 2012-03-14 12:17:43

0

我也有过这样的几次我怀疑原因是TFS管理待定合并的方式有些有趣如果您尝试合并这些更改并且更改类型只是”合并“而不是”合并,编辑“,那么合并它们并确信没有发生变化是安全的,如果你不合并它们,TFS将不断尝试合并非变化,最终可能使真实变化变得模糊不清,我建议合并这些非变化尽快。