2011-05-06 178 views
2

我有主要和开发分支。我在两者中进行了更改并签入。我从main到dev合并并签入。现在我从dev合并到main。我有冲突。这怎么可能?TFS合并冲突

回答

3

解决单向合并的冲突不一定适用于另一个方向的合并。在许多工作流程中,您基本上正在合并,以便尽可能保持两个分支的相似性 - 例如,将开发分支更改为生产分支,并可能将关键错误修复从生产分支移回开发分支。在这种工作流程中,当合并两个分支时(通常在两个分支中都需要关键的错误修正),您通常不希望发生分歧,因此不是很明显,为什么两次都必须解决合并冲突,但这是肯定的不是在分支机构工作时唯一的工作流程。

我曾经在一个Java项目上工作,该项目有一些实用程序库,我们与一个在不同项目上工作的组共享一些实用程序库。在某些情况下,我们的图书馆由于各种原因需要与他们分道扬so,因此我们选择了他们的项目分支机构,两组都对图书馆进行了独特的更改。有时候发生了,我们会修正一个错误,有时候会发生,他们会添加一个新功能,所以我们经常会彼此来回合并。

您可以在这里看到,从我们的分支合并他们的结果并不一定是从他们的分支合并到我们的结果。假设有一个文件,我们添加了一些新的方法,并可能修复了一些错误。假设他们已经添加了一些不同的方法。当他们将我们的更改合并到他们的分支中时,他们会遇到合并冲突,我们假设他们接受了错误修正,但没有采用我们的新方法,因为他们不需要它们。现在,当我们进行合并以将其更改引入分支时,我们仍然遇到合并冲突 - 这使我们可以将他们的方法带入我们的文件。

如果TFS是作出关于合并从分支到成果的基础上,从我们的支进他们的一些我们的假设,这将是不准确的。