更改合并的候选人一次又一次地出现

时间:2014-07-23 02:30:33

标签: tfs merge

我有一条名为“Main”和“Dev”的主线。 Dev是Main的孩子。

Main
  ^
  |
Dev

实际上,Main用作普通的Dev分支,因此两者都是连续登记的新工作。

我们不时决定合并两者。将Dev变更集拉到Main,反之亦然。我想我们没有正确地做到这一点。我们在合并期间更改文件等。在一种情况下,我们从Dev创建了一个分支来稳定。猜猜这是个错误。

问题是,一些更改集是“持久性”,它们会一直显示在合并窗口中,也在“tf merge / candidate”命令中,就好像它们尚未合并一样。

我想我可以做一个tf / discard,这会让变更集消失。不应该这样吗?

更重要的是,在合并另一个变更集后,有时合并会重新启动甚至消失。猜猜这是另一个合并操作的某种相关变更集。在摆脱这些变化的过程中,一个变更集合并不止一次。

PS:尝试过tf / discard,tf / discard / baseless,tf / baseless处理冲突。什么都行不通。没有尝试/强迫,因为我不热衷于重做所有冲突AFAIK。

3 个答案:

答案 0 :(得分:0)

看起来你很喜欢这种挑选混合反模式。

http://nakedalm.com/avoid-pick-n-mix-branching-anti-pattern/

更改分支方法,问题就会消失。

答案 1 :(得分:0)

由于我无法反向合并(如另一个解决方案中所述),我试图以另一种方式解决这个问题。

我回滚合并,签入并再次合并。这一次,试图使无侵入性改变

我确实必须改变'项目文件,因为合并工具列出了我需要部分合并的一大块行。所以我排除了块,但在解决冲突期间手动复制了我需要的行,仍然在VS的合并工具中。然后我接受了决议。

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

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

答案 2 :(得分:-1)

您不应该放弃更改集。如果你想"同步"他们只需合并MAIN-> DEV,然后合并DEV-> MAIN,就可以在两个步骤中解决冲突。

之后,合并列表中不会出现任何变更集,它们应该同步。如果您没有这样做,我们需要某种可重现的场景或特定场景的详细描述,以便我们为您提供帮助。