svn树冲突

svn树冲突,svn,Svn,我不断地遇到树冲突,甚至读了所有的线程,我似乎也不明白其中的原因。我的背景是clearcase,所以svn对我来说是新的。当我将树冲突与任何clearcase活动关联时,它就没有意义了。下面是我的情况导致了这个问题 我有主干、分支和标记区域的标准svn结构。 主干是我们的生产代码,开发人员不在这里工作 情况是,开发人员a在分支区域中创建了一个名为fix1的目录,并从主干复制要在此区域中处理的文件。工作完成后,发布组将更改合并回主干。这个很好用 下一步,开发人员在名为fix2的分支下创建一个目录,

我不断地遇到树冲突,甚至读了所有的线程,我似乎也不明白其中的原因。我的背景是clearcase,所以svn对我来说是新的。当我将树冲突与任何clearcase活动关联时,它就没有意义了。下面是我的情况导致了这个问题

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

情况是,开发人员a在分支区域中创建了一个名为fix1的目录,并从主干复制要在此区域中处理的文件。工作完成后,发布组将更改合并回主干。这个很好用

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

在所有情况下,开发人员在其工作区域执行svn,rm人员在合并之前执行svn

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

问题有三个方面

是什么导致了树冲突

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

这类工作的推荐方法是什么

任何帮助都将非常感激


谢谢

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

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

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

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


这在中有更详细的解释。

愚蠢的问题,但我假设主干是在执行svn合并后提交的?那么您是说cd到分支目录和d svn mkdir fix1然后切换到该区域,然后执行该工作?不要使用副本,这是提供给我的信息。你能给我一个例子和一个关于这个的文档链接吗?谢谢。这不是创建分支的方法。使用
svn copy
创建分支。在我的回答中,我已经链接到了SVN的书,但这里还有另一个链接:也许我说错话了。主干到分支的svn副本假设我相信主干的完整副本(所有文件)我可能只需要一个文件,这就是为什么我在主干到分支之间复制特定文件的svn副本,然后在分支目录中执行我的工作。一个文件VN副本是廉价副本。它们只是指向现有树的指针。阅读SVN手册:。您应该始终从项目的根开始分支。您缺少SVN的关键概念,所有这些概念在免费的SVN书籍中都有非常好的解释。你为什么不看呢?我要看,但我刚刚看到了。它的功能与我使用clearcase时的功能大不相同。