当设置SVN时,我们只是在根结构中创建了一个新文件夹,而不是从trunk创建一个分支:
/branches/dev/
/trunk
并继续努力。当然,现在,由于SVN没有看到分层连接,因此无法将dev合并到trunk。我正在尝试找到使其正确的最佳方法,以便我们的代码中的dev分支与trunk有关,我们可以在将来进行正常的合并。
我找到了两种方法 - 其中一种只是将代码从dev复制到trunk,commit trunk,然后进行适当的分支检查。我对这种方法的问题在于,我们将丢失所有修订历史记录,因为真正的开发分支将开始新鲜。
其他方法是使用--ignore-hierarchy。这似乎迫使东西进入主干,我不确定这种方法的缺点。
基本上,当我们自己创建dev文件夹而不是分支主干时,从头开始修复搞砸的最佳方法是什么?
答案 0 :(得分:1)
为什么不能将该分支合并到trunk中?
在subversion(以及其他所有rcs)中维护分支等有不同的方法。您直观地设置的是传统方式:您创建文件夹并复制分支/主干/标签之间的文件夹修订之间的差异。这是有效的,因为svn层次结构中的节点只是一个文件夹。 svn中没有特殊的魔力。
Subversion只不过是一个带有额外时间轴的文件系统。
所以你要做的就是将你提交给分支节点的更改(修订)合并到主干中:
svn merge -r <start>:<current> https://<server>/<repo>/<path>/branches/dev <trunk-checkout>
(也就是说:如果你的分支最初包含一些主干的修订版。但是我认为它确实如此,因为你没有另外说过。如果它完全独立于主干,那为什么它被称为分支?并且:更多重要的是:你为什么要把它合并到主干?)
更新2013-01-26:
讨论显示,这种情况涉及一个空主干,从未填充过,从未使用过,因此没有任何内容可以将任何更改从分支合并到。相反,整个开发起源于所谓的一个“分支”,它实际上是该项目的唯一“主干”。
所以解决方案如下所示: 在这种情况下,只需将当前称为分支的部分移动到项目主干,并在该新的(更合适的)名称下继续开发。开发工作可以在新的结账时进行,也可以通过改变现有的结账方式来完成。从现在开始,分支应该按照下面描述的方式使用。因此,纠正错误配置名称并调整当前情况,使其与项目的典型措辞相匹配: