2011-09-08 54 views
5

我知道在Subversion(SVN)1.6中有--reintegrate选项可将特性分支合并回树干。在Subversion(SVN)中重新整合到树枝(不是树干)

我的工作流程有点复杂:

我们有功能分支 - 我们常常合并主干他们。但我们不会立即将它们放回主干道。相反,我们在主干上创建一个发布分支,并合并功能分支以发布分支。此时我们会遇到很多树冲突(因为在功能分支和主干中都存在很多变化)。

选项--reintegrate必须帮助在这种情况下,但它看起来像--reintegrate合并到树干以外的分支时不起作用。真的吗?

+1

所以看起来像没有重新集成所需:在阅读后能够解决我的问题:http://designbygravity.wordpress.com/2009/10/19/what-mother-never-told-you-about-svn-分支和合并/ – tevch

回答

4

对我而言,除trunk之外的任何分支上都不能使用--reintegrate选项。 Subversion没有任何关于命名或分支位置的标准,所以trunk没有什么特别之处。对于Subversion,branchestrunktags仅仅是目录。这些目录对我们来说只是特别的,因为我们这样说。

--reintegrate选项的事实,如果我从分支合并一个分支,然后尝试从分支分支一个合并回去,我可能会尝试做合并东西回分支A最初在分支A--reintegrate选项让Subversion知道我正在颠倒我合并的方向,并且不考虑分支B中的东西,它真的是来自分支A合并的结果。

重新集成是实际跟踪合并更改的任何版本控制系统中的一个问题。无论如何,--reintegrate必须涉及一个名为trunk的分支,没有任何理由。否则,这个选项没有真正的需要。所有Subversion必须做的是看到你正在合并到一个名为trunk的分支中,并意识到它可能是重新整合。

+1

是的,我的印象一样 - 重新集成不能被限制,但我从来没有看到人们重新集成到树干以外,当我重新整合到分支时,我得到这个:svn:'/ svn /!svn/bc/364751//releases/<分支我重新融入>'路径没有找到 – tevch

+0

所以看起来像重新合并不是我所需要的。我需要2个功能分支合并发布分支(中继副本)。那么我如何让svn知道不考虑分支R中的东西,那真的是从分支T合并的结果并摆脱所有这些树冲突? – tevch

+0

所以你从Trunk-> Feature_branch,然后是Trunk-> Release_branch。 Trunk中的更改合并到Feature_branch中。您还可以对Feature_branch进行更改。最后,您想要将Feature_branch合并到Release_branch。由于这两个分支没有直接关系,我不能100%确定这会起作用。 Svn的合并仍然有点弱。你最好使用'--ignore-ancestory'。订阅[Su​​bversion列表](http://subversion.apache.org/mailing-lists.html)并在此处询问。该列表专注于Subversion问题,可能拥有比此处更多的专业知识。 –