2011-06-29 76 views
1

我们有一个TFS2010主干和几个分支。TFS2010合并分支和树干之间永不会聚合

我试图把躯干和BRANCH1的状态时,有没有从主干合并到BRANCH1,检查,然后从BRANCH1合并到主干,并检查左更多的变化。

然而,在那之后如果我试图看看是否还有什么可以合并的方式,TFS会持续向我展示约15个需要合并的文件。执行合并后,文件无法在文件系统上找到,但TFS仍然确信这15个文件将被合并。

我进入循环多次合并到另一个,反之亦然,但似乎没有解决它。而且我不是我们团队中第一个体验这个bug /功能的人。

可能是我缺少明显的东西?任何人有任何想法,为什么TFS行为如此怪异?有没有办法结束无休止的无意义合并的无政府状态?

回答

1

我能想到的几种可能性:

1)(原谅我,如果它说明明显),当合并,这些更改会在您的工作空间本地进行,而不是提交到TFS数据库。合并完成后,您需要先检查这些更改,然后才能将其反映到TFS中,并且(希望)会从“尚待合并的事项”列表中消失。

2)你有多个工作区? (例如,我曾经试图用一个正常的开发工作区为主干,并在主干和分支都映射一个特殊的合并工作空间)

如果合并成一个工作区,合并后的文件将只出现在待更改为那个工作区。请注意,Source Control浏览器和Pending Chnages窗口都有它们自己的Workspace下拉菜单,并且如果您在SC Explorer中切换工作区(执行合并),您的未决更改将不会被切换,因此将会显示在不同的工作区。 3)有时候TFS似乎会变得混乱并且表现得很混乱(我已经做了一次合并,但TFS没有改变任何文件,这是怎么回事?!)

3)不正常。随着每个新版本的TFS,这得到显着改善,但它偶尔在2010年发生。(这不是你想听到的答案,我知道:-)

+0

杰森您好,感谢您的回复,尽管它没有不幸回答我的问题:1)正如我明确写入在我的问题中,我总是在每个合并步骤后都检入中继线和分支1。这不利于后,我检查是否有任何合并两者之间TFS再次祭起所有相同的文件。 2)我只有一个工作区。 3)可悲的是,在我看来,那东西就实在太差了TFS的,它确实得到了很困惑。所以我的问题是我怎样才能让它恢复正常? – Mersis

0

在精彩之外简要说明杰森已经强调。

有您以前在主或BRANCH1使用tf.exe回滚/keepmergehistory [1]命令上的变更?在这里阅读有关tf.exe回滚命令的更多信息http://geekswithblogs.net/TarunArora/archive/2011/06/27/how-to-undo-a-changeset-using-tf.exe-rollback.aspx

[1] - 如果您希望将来在同一个源和相同目标之间进行合并以排除您正在回滚的更改,请指定此选项。

如果是这样,您可以使用tf.exe合并/强制http://msdn.microsoft.com/en-us/library/bd6dxhfy(v=VS.100).aspx强制两个分支之间的合并。但请确保在合并后检查(合并后出现冲突时,除非您解决了冲突并签入,更改仍保持签出状态),并且如果在合并到分支后执行查看历史记录,您可以请参阅新的更改集,验证更改集详细信息以确保合并发生正确。

0

当你已经修改了文件中的两个分支与合并前后,TFS并不总是(我还没有发现的时间和原因)更新的文件的共同祖先使其认为他们仍然是两个改变。

要解决这个问题,我永远只是执行合并,并选择“带源科”的冲突,一旦我知道的源和目标分支已经是一样的。

如果任何人有一个很好的解释为什么会这样,我会很高兴地听到它...