1

这是我们的情况:在 TFS 2010 中,我们有主开发分支和发布分支。在某些时候,决定某些代码位于名称不佳的目录中,因此在 TFS 中对其进行了重命名(仅在主分支上,因为它不是错误文件)。我现在已经修复了 dev 分支上这个移动代码中的一个错误,并希望将修复合并到发布分支中。

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

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

更新:我刚刚重新访问了这篇文章并重试了。重现错误的步骤是:

  1. 我在 Main/Desktop/UserControls 和 Releases/V5/Desktop/UserControls 中有一个文件 (control.cs)。
  2. 使用源代码管理资源管理器我将 UserControls“移动”到 UserControls2 并签入(我也尝试过“重命名”,结果相同)
  3. 我在 Main 上编辑 control.cs 并签入。
  4. 我将 Main 合并到 Releases/V5 中(注意我正在合并整个分支,而不仅仅是 UserControls)
  5. 我现在在 Releases/V5/Desktop/UserControls2 中看到修改后的 control.cs,在 Releases/V5/Desktop/UserControls 中看到旧的
4

1 回答 1

0

我之前假设你有 DEV 分支并且在我用你上面解释的对 TFS 进行了更多研究之后我有更多的输入来回答它。

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

现在我将 Main 合并到 Release 并且每个更改都正确合并。在 Release 中,文件夹 F2 被重命名为 F3,并且 file1 也被合并到了正确的文件夹中。

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

一切都像一个魅力。我也在使用 TFS2010。如果您做了与我刚才解释的不同的事情,请告诉我吗?我错过了什么吗?

更新:

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

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

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

文件夹重命名待更改

该文件位于 BugTest2/BugTest3 文件夹中

于 2013-08-01T13:55:39.167 回答