svn树冲突
Posted
技术标签:
【中文标题】svn树冲突【英文标题】:svn tree conflict 【发布时间】:2012-12-27 13:48:48 【问题描述】:我不断遇到树冲突,即使阅读所有线程,我似乎也无法理解原因。我的背景是清晰的,所以 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)时,我没有将文件的内容合并回来?
此类工作的推荐方法是什么?
任何帮助将不胜感激。
谢谢
【问题讨论】:
愚蠢的问题,但我假设主干是在进行 svn 合并后提交的? 【参考方案1】:问题可能来自你创建分支的方式:
这个开发人员在分支区域创建了一个名为 fix1 的目录,并从主干复制文件以在该区域工作。
这不是应该做的。您不应该手动复制文件。相反,您应该从主干创建一个分支,将您的工作副本切换到该分支,进行修改和提交。每隔一段时间,当分支上的工作完成时,您应该从主干合并到分支,以将主干的所有更改合并到分支中。
然后你应该切换到主干,将分支重新整合到主干,提交,然后删除分支。
这在the SVN book中有更详细的解释。
【讨论】:
所以你是说 cd 到分支目录和 d svn mkdir fix1 然后切换到这个区域然后开始工作吗?不要使用副本,这是提供给我的信息。你能给我提供一个例子和一些关于这方面的文档的链接吗?谢谢 没有。这不是创建分支的方法。使用svn copy
创建一个分支。我已经在我的回答中链接到 SVN 书,但这里有另一个链接:svnbook.red-bean.com/en/1.7/svn-book.html#svn.branchmerge
也许我说错了什么。假设我相信主干到分支的 svn 副本 主干的完整副本(所有文件)我可能只需要一个文件,这就是为什么我将特定文件的 svn 副本从主干复制到分支然后在分支目录中完成我的工作n 一个文件
SVN 副本是廉价副本。它们只是指向现有树的指针。阅读... SVN 书:svnbook.red-bean.com/en/1.7/…。您应该始终从项目的根目录分支。您缺少 SVN 的关键概念,所有这些概念都在免费的 SVN 书中得到了很好的解释。你为什么不读呢?
我要去但我刚看到它。它的功能与我使用 clearcase 的功能大不相同。以上是关于svn树冲突的主要内容,如果未能解决你的问题,请参考以下文章