快速序言。我已经倾倒了大量的文章,但似乎没有什么是我的情况和最新的信息。
我的程序刚刚从CVS切换到SVN 1.6。我们阅读了redbeans一书并采用了here所规定的工作流程。简单地说,他们是:
svn copy ^/trunk ^/branches/cr####
svn merge ^/trunk
svn merge --reintegrate ^/branches/cr####
直到一周前,这种方式运作良好。现在,执行相同的步骤会导致合并时出现无数冲突,但会导致未进行本地修改的文件。例如,假设其他人创建了一个分支cr1234并对foo.c进行了更改。同时,在分支cr1234重新整合到主干之前,我创建了另一个分支cr5678。现在在我的分支cr5678中,我修改bar.c并提交到分支。在某些时候,分支cr1234重新集成到主干中,因此在主干中有foo.c的更新,但在我的分支cr5678中没有。在我重新整合我的分支cr5678之前,我执行了如上所述的合并svn merge ^/trunk
。这是奇怪的事情,即使我没有触摸它,foo.c也会被认为是冲突的。这种情况发生在80%以上的合并文件中。此外,通常,当从分支重新集成到主干时发生相同类型的冲突。这似乎是svn应该能够弄清楚的事情。
这几周工作得很好。我怀疑第一个分支有svn重命名的问题。我不确定这是不是发生了什么,但现在似乎一切都搞砸了。我没有看到带有svn:merginfo属性的文件,所以我不知道为什么会有冲突。
我们都是颠覆新手,所以我担心我们已经以某种方式损坏了存储库,并且不确定我们应该采取什么样的方法。有什么建议可以试图弄清楚可能导致冲突的原因,即使合并应该是微不足道的?