tfs merge缺少新代码

时间:2018-03-14 18:51:24

标签: tfs merge-conflict-resolution

在我的默认收藏中,我有一个团队项目。在那个团队项目中,我有两个分支:PROD和DEV。 最近,我一直在研究DEV。因此,由于PROD和DEV之间的变更集的数量很常见,所以我有当前的问题:

其中一个文件在PROD(2470)中的变更集编号低于DEV(2539)中的变更集编号(来自我在合并工具中可以看到的)

当我从PROD合并到DEV时,第一次,TFS没有看到该文件需要合并。

我有很多编译错误。所以我不得不修改DEV中的文件,办理登机手续,然后在合并期间,TFS看到它并在解决冲突标签中询问我处理文件。

,但

在合并工具中,DEV中的所有新代码都被PROD中的代码覆盖。我不明白! 例如,DEV中的文件有一些新的using指令。但合并工具删除了它们,因为它正在选择PROD文件。因此,大多数新代码都被较低的变更集隐藏。

发生了什么事?我现在害怕合并或使用TFS!

你有类似的问题吗?我该怎么办?

添加了源资源管理器树的图片: source explorer tree

1 个答案:

答案 0 :(得分:0)

首先,请检查DEV / Prod分支中是否有已删除的文件。要执行此操作,请转到“工具”,“选项”。展开“Source Control”,选择“Visual Studio Team Foundation Server”并在Source Control Explorer中选中“显示已删除的项目

最好取消删除Dev分支中的文件和文件夹,这可能会阻止将来发生“奇怪的东西”。

您也可以使用“tf merge”命令代替使用合并向导。

这将强制TFS合并更改,即使它认为它们之前已被合并。

tf merge $/PROD $/DEV /recursive /force

如果您担心TFS中的合并过程会覆盖DEV分支中的新功能,您可以尝试添加/preview选项,这会显示合并的预览,而不是实际进行合并。或者使用/candidate选项,该选项打印源中尚未合并到目标的所有变更集的列表。该列表应包括尚未合并的变更集ID以及有关该变更集的其他基本信息。

更多详情请参阅此问题:Team Foundation Server merge not merging

如果您曾经重命名过您的DEV分支或PROD分支,您可能遇到与此问题相同的问题:TFS Merge Issue with Missing New Files

如果以上所有内容仍然不起作用,建议您首先将DEV合并到Prod,这应该覆盖Prod中的旧文件,然后将Prod合并回DEV,然后修复的小错误也将包含在DEV分支中。这可以解决问题,只需确保在解决冲突时选择了适当的版本。