2012-10-22 158 views
0

我有一个关于在Subversion中合并的问题。所以我有一个后备箱,然后是来自后备箱的两个分支。因此,可以说我有一个树干,然后分支从树干创建的A,然后从树干创建分支B.SVN分支合并

可以这么说,我对B进行了修改,然后更改为干线,然后将干线更改合并到B中,并签入分支B.我现在要合并到分支A而不是干线。有可能将分支B合并到分支A中吗?或者我首先必须将分支B合并到主干然后分支A?

+0

当然有可能。修订只是文件的变化,没有魔法可以阻止你做事。问题是:您想要将哪些更改合并到分支A中? – arkascha

+0

我想合并自分支B创建以来的所有可用更改。正如我上面提到的,此时分支B与TRUNK是最新的。 –

+0

然后继续:尝试想象svn merge命令表达什么:“接管从修订版'a'到修订版'b'所发生的所有更改”。简单。没有魔力。请记住,“分支”或“后备箱”的概念没有任何技术含义。这只是名字,就是这样。 – arkascha

回答

0

你可以合并你想要的任何分支

0

你可以在SVN中单独合并修订版本。所以是的,只需选择你想从B合并到A的修订版,它应该可以正常工作。如果B中存在缺少A的文件,但您尚未合并其添加,则可能会发生树冲突。您可以通过合并丢失的文件,将它们最初添加到B的位置清除这些文件。

+0

是的,我看到树木冲突。让我说现在我在A分支上。我可以通过运行svn log --stop-on-copy branchB和我看到的任何修订#来看到分支B上的第一个修订版,那么我只需要运行“svn merge -r rev#:HEAD http:// url/branches/branchB“(假设im在branchA工作区中)。 –

+0

树冲突通常表示正在合并的东西,它或者不存在,或者从目标分支中被删除。 Ergo,您无法将更改合并到修订历史记录中不存在的内容中。尝试通过确保源分支与您的目标分支完全符合文件结构来解决冲突,然后如果需要,合并已添加或删除树冲突抱怨的文件的修订。 – Zoltan