tfs合并缺少新代码

tfs合并缺少新代码,tfs,merge-conflict-resolution,Tfs,Merge Conflict Resolution,在默认集合中,我有一个团队项目。在这个团队项目中,我有两个分支:PROD和DEV。 最近,我主要从事开发工作。因此,由于PROD和DEV之间的变更集数量很常见,因此我有一个最新的问题: 其中一个文件在PROD(2470)中的变更集编号低于DEV(2539)(从合并工具中可以看到) 当我第一次从PROD合并到DEV时,TFS没有看到需要合并文件 我有很多编译错误。因此,我必须在DEV中修改该文件,进行签入,然后,在合并过程中,TFS看到了它,并在“解决冲突”选项卡中要求我处理该文件 但是, 在合并

在默认集合中,我有一个团队项目。在这个团队项目中,我有两个分支:PROD和DEV。 最近,我主要从事开发工作。因此,由于PROD和DEV之间的变更集数量很常见,因此我有一个最新的问题:

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

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

我有很多编译错误。因此,我必须在DEV中修改该文件,进行签入,然后,在合并过程中,TFS看到了它,并在“解决冲突”选项卡中要求我处理该文件

但是,

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

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

你有类似的问题吗?我能做什么

添加了源浏览器树的图片:

首先,请检查您的开发/生产分支中是否有已删除的文件。要做到这一点,请进入“工具”、“选项”。展开“源代码管理”,选择“VisualStudioTeam Foundation Server”,并在“源代码管理资源管理器”< < /P>检查“<强>显示删除项< /强> >。 最好取消删除Dev分支中的文件和文件夹,这样可以防止将来发生“wierd事件”

您也可以使用“”命令,而不是使用合并向导

这将迫使TFS合并更改,即使它认为这些更改以前已经合并过

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

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

更多详情请参阅本期:


如果您曾经重命名过DEV分支或PROD分支,您可能会遇到与此相同的问题:


如果以上所有操作仍然不起作用,建议您首先将DEV合并到Prod,这将覆盖Prod中较旧的文件,然后将Prod合并回DEV,那么较小的错误修复也将包含在DEV分支中。这可能会奏效,只要确保在解决冲突时选择了适当的版本即可。

另一个例子,如果PROD中存在一些新代码,则会从开发中删除。我在PROD的一个类中添加了新成员,在合并之后,TFS会自动将它们从合并文件中删除,就像它告诉我们PROD中的成员是旧的,并且在DEV中被删除一样。您能否详细说明分支是如何创建的?根据你的描述,我假设PROD是DEV的孩子?在这种情况下,如果在Prod中进行了更改,则可以将这些更改合并到开发人员。您是否在合并过程中签入了一些文件,而不是解决冲突?合并时,是否选择了最新版本的DEV(签入代码后)?你有没有将最新的开发与PROD进行比较?@HamidShahid的开发是从生产中进行的。这也是我所期望的。检测到更改,但这就像TFS认为PROD太旧一样,而且由于没有冲突,它会从PROD中删除新代码,并在没有通知的情况下将其合并到DEV中。@PatrickLu MSFT我在合并过程中没有签入某些文件。合并时,我使用最新版本的PROD(我想将PROD合并到DEV中)。最新的DEV有新的功能,PROD也有一些小的bug修复。