1

我不断遇到树冲突,即使阅读所有线程,我似乎也无法理解原因。我的背景是清晰的,所以 svn 对我来说是新的。当我将树冲突与任何 clearcase 活动联系起来时,它没有意义。以下是导致问题的我的情况。

我有树干、分支和标签区域的标准 svn 结构。主干是我们的生产代码,开发人员不在这里工作。

情况是这个开发人员在分支区域创建了一个名为 fix1 的目录,并从主干复制文件以在该区域工作。工作完成后,发布组将更改合并回主干。这工作正常

下一个开发人员在分支下创建一个名为 fix2 的目录,并从主干获取文件的副本(在上一个示例中由 rm 刚刚合并回来),当他的更改完成时,这将被合并回主干,我们得到一个树冲突。

在所有情况下,开发人员在他的工作区域都做了一个 svn up,而 rm 人在合并之前做了一个 svn up

在这两种情况下, rm 人都将目录更改为 trunk 并执行了 svn merge ../branches/fix1 或 svn merge ../branches/fix2

问题是三个方面

是什么导致了树冲突?

当我解决冲突(svn resolve -R --accept=working)时,我没有将文件的内容合并回来?

此类工作的推荐方法是什么?

任何帮助将不胜感激。

谢谢

4

1 回答 1

2

问题可能来自您创建分支的方式:

该开发人员在分支区域创建了一个名为 fix1 的目录,并从主干复制该文件以在该区域中处理。

这不是应该做的。您不应该手动复制文件。相反,您应该从主干创建一个分支,将您的工作副本切换到该分支,进行修改和提交。每隔一段时间,当分支上的工作完成时,您应该从主干合并到分支,以将主干的所有更改合并到分支中。

然后你应该切换到主干,将分支重新集成到主干中,提交并删除分支。

这在SVN 书中有更详细的解释。

于 2012-12-27T14:04:06.270 回答