2014-07-23 31 views
2

我有一条名为“Main”和“Dev”的主线。 Dev是Main的孩子。变更集合候选人合并显示一遍又一遍

Main 
^
    | 
Dev 

实际上,Main被用作一个正常的Dev分支,所以两者都被连续检入新工作。

有时,我们决定合并两者。将开发变更集拉到主要和其他方式。我想我们没有正确地做到这一点。我们在合并等过程中更改文件。在一种情况下,我们创建了一个来自Dev的分支来稳定。猜猜这是一个错误。

问题是,有些变更集是“persist”,它们一直显示在合并窗口中,也出现在“tf merge/candidate”命令中,就好像它们尚未合并一样。

我想我可以做一个tf /丢弃,这将使变更集消失。这不应该是这样吗?

更有甚者,合并其他变更集合后,有时合并重叠或甚至消失。猜猜这是来自另一个合并操作的某种相关变更集。在摆脱这些变化的过程中,一个变更集不止一次地被合并。 PS:试过tf/discard,tf/discard/baseless,tf/baseless处理冲突。什么都没有没有尝试/强制,因为我不热衷于重做所有冲突AFAIK。

回答

-1

您不应该需要放弃更改集。如果你想“同步”它们,只需合并MAIN-> DEV,然后DEV-> MAIN,这两个步骤都可能解决冲突。

之后,没有变更集应显示在合并列表中,它们应该同步。如果这种情况没有发生,我们需要某种可重复的场景或对特定场景的详细描述,以便我们为您提供帮助。

+0

恐怕我不能重现这一点。找出发生的事情的一些提示将会有所帮助。我正在放弃,因为合并已经平息了,所以我有兴趣让这些变更集看不见。 –

0

由于我无法在相反方向合并(如另一解决方案中提到的),我试图用另一种方式解决此问题。

我回滚了合并,签入并再次合并。这一次,试图让没有侵入性的变化

因为合并工具列出了我需要部分合并的一行代码段,所以我必须'更改'项目文件。所以我排除了大块,但在冲突解决过程中手动复制了我需要的行,仍然在VS的合并工具中。然后我接受了这个决议。

在我第一次尝试时,我完全忽略了这些行,导致某些文件和文件夹被错误地从项目中排除。然后,在解决方案资源管理器中,我重新包含了这些文件和文件夹。

不知何故,似乎我的第一次尝试导致TFS将合并视为不完整,将其留在列表中。 我的第二次尝试被视为完全合并并成功吞下候选人。