如何在TFS 2010中合并工作?

时间:2010-12-19 17:08:59

标签: tfs tfs2010 merge

当我将文件从一个分支合并到另一个分支,然后将文件签入到目标分支中时,会检出许多文件,只检查那些已更改的文件。例如,Main和Critical分支相同,我们仅对Critical Fix分支上的2或3个文件进行了更改。然后我合并了Critical ==> Main,当我去检查Main分支的更改时,我注意到有很多文件被检出,而不仅仅是在Critical Fix分支中实际更改的2或3。此外,当我将主分支中的文件与服务器上的文件进行比较时,我被告知文件是相同的。如果文件相同,为什么要检出?任何帮助将不胜感激,甚至是一个解释TFS 2010如何合并的链接。

3 个答案:

答案 0 :(得分:2)

Visual Source Safe和TFS中的默认源代码控制合并工具一直很差 - 它们经常被最简单的更改所困惑,经常将相同的文件检测为“已更改”,并且自动合并工具经常失败(包括错误的变化)。我很快就学会了对这些合并工具的不信任(约在1995年),并且从那以后在任何新版本中都没有看到任何证据表明核心合并算法已得到改进。

好消息是你可以用第三方替换客户端合并工具(我使用的工具非常好,我实际上相信它的自动合并选项。我曾经花了2天时间尝试(并且失败)与TFS工具进行复杂的合并,并最终购买了这个第三方工具,并在15分钟内成功完成整个合并!)

坏消息是分支合并的第一步只是使用TFS合并代码,因此它会混淆很多,导致你所描述的症状。这在如此昂贵的应用程序的这一关键特性中令人沮丧,因为它在每次合并时浪费了大量程序员时间来修复想象中的“冲突” - 从正面看,在第三方工具的帮助下,它通常很容易可靠解决这些合并问题。

答案 1 :(得分:1)

我遇到了同样的问题。我创建了DEV分支的一个分支,并对一些文件进行了更改。我检查了我的更改,并将DEV的最新更改合并到我的分支中。合并后,我的分支中的所有30,000多个文件都被标记为已更改。就像cju一样,我发现大多数文件的比较显示没有进行任何更改。

我决定撤消所有更改,然后重试。当我右键单击解决方案并选择撤消时,我收到一条消息,一个文件有更改,我确定要撤消该文件吗?我点击了“No to All”,当撤消操作完成时,只有我从DEV合并期间更改过的文件仍然被检出。这正是我想要的,所以我将这些更改检查到我的分支并继续工作。

我希望其他人能够像我一样轻松地纠正他们的情况。

答案 2 :(得分:0)

我注意到的一件事是,当一个文件在不同的分支中被更改导致完全相同的内容时,然后合并将其标记为冲突,因为文件在两个地方都被更改。当然,文件的差异视图会注意到没有更改,因此自动合并会自动为您解决此问题。