当文件被移动时,如何在TFS中合并?

当文件被移动时,如何在TFS中合并?,tfs,merge,Tfs,Merge,我们的情况如下: 在TFS2010中,我们有主开发分支和发布分支。 在某种程度上,确定某些代码位于一个名称不正确的目录中,因此它仅在主分支上在TFS中重命名,因为它不是bug fiw。 我现在已经在dev分支上修复了这段移动代码中的一个bug,并希望将该修复合并到release分支中 但是,当我这样做时,它不会对文件执行合并,而是在新位置创建文件的副本,并将更改标记为“合并,分支” 我是做错了什么,还是这是TFS的“功能” 更新:我刚刚重新浏览了这篇文章并重试。重现错误的步骤如下: 我在Main

我们的情况如下: 在TFS2010中,我们有主开发分支和发布分支。 在某种程度上,确定某些代码位于一个名称不正确的目录中,因此它仅在主分支上在TFS中重命名,因为它不是bug fiw。 我现在已经在dev分支上修复了这段移动代码中的一个bug,并希望将该修复合并到release分支中

但是,当我这样做时,它不会对文件执行合并,而是在新位置创建文件的副本,并将更改标记为“合并,分支”

我是做错了什么,还是这是TFS的“功能”

更新:我刚刚重新浏览了这篇文章并重试。重现错误的步骤如下:

我在Main/Desktop/UserControls和 发布/V5/Desktop/UserControls。 使用源代码管理资源管理器,我将UserControls“移动”到UserControls2并签入,我还尝试使用 同样的结果 我在Main上编辑control.cs并签入。 我将Main合并到Releases/V5中注意,我正在合并整个分支,而不仅仅是用户控件 现在,我在Releases/V5/Desktop/UserControls2中看到了修改后的control.cs,在Releases/V5/Desktop/UserControls中看到了旧的control.cs
我在前面回答这个问题时假设您有开发分支,在我用您上面解释的内容对TFS做了更多的研究之后,我有了更多的输入

这就是我所做的,我有一个源分支称之为Main,我从Main分支称之为Release。大体上,我有两个文件夹f1和F2,我将文件夹F2重命名为F3并签入更改。然后在F2中编辑文件File1,现在是F3,并对内容进行了一些更改,并签入了更改

现在我将主版本合并到发布版本中,所有更改都正确合并。在发行版中,文件夹F2被重命名为F3,文件1也被合并到正确的文件夹中

更改应显示为“合并”、“重命名文件夹”和“编辑文件”

一切都很顺利。我也在使用TFS2010。如果你做了与我刚才解释的不同的事情,你能告诉我吗?我错过什么了吗

更新:

我测试了上面提到的完全相同的场景,它正确地合并了control.cs文件,即使在源分支中移动/重命名之后也是如此。我相信,在您的情况下,在发布分支中,有人重新创建、删除并再次添加了Usercontrols文件夹和/或Usercontrol.cs文件,因此TFS无法识别源分支中的相同文件/文件夹,因此无法正确合并

您可以检查发布分支中Usercontrol文件的历史记录以确认这一点吗

只需添加我测试中的一些屏幕截图:


你好,以赛亚,谢谢你的回复。不过这有点让人困惑。我认为您描述的是一个系统,其中有一个单独的开发分支,而我们只是在Main上进行开发。不过,如果我读对了,步骤1-5涉及让Dev和Main与新文件夹中的新bug修复同步。好吧,我不必担心。但是,当第6步完成时,合并不会将错误修复应用于发行版中的文件,而是在新位置创建一个副本。如果您的文件正确分支,tfs应按照Isaiah所述解决更改痕迹。另一个分支的存在与此无关。我认为这可能不起作用的情况是,文件/文件夹分别在发行版和主版本中创建了2次-这打破了适当的分支,因为tfs认为它们是完全不同的项。我所做的唯一不同于Isiah修改的答案是文件夹重命名和文件修改分别合并而不是一下子。如果某个目录在某个时候被单独创建,而不是像drk建议的那样被正确合并,那么我创建了一个新的测试目录并重新创建了这个问题。我得出的结论是,这是tfs tbh中的一个缺陷,而不是我的错误。谢谢你们的帮助。所以你们重命名了主分支中的文件夹,然后编辑了文件。签入两个更改。然后您尝试将更改从Main合并到Release?你能按你所做的顺序列出步骤吗?@Isaah4110谢谢你看了这篇文章,很抱歉我没有看到你的最后一篇文章——我已经放弃了这篇文章。我现在已经重新测试并添加了复制的确切步骤。你能检查更新的答案吗。