使用subversion和intellij合并树干与分支

时间:2012-03-07 21:26:56

标签: svn version-control merge intellij-idea

我对其中一个分支做了一大堆修改。现在我试图将这些更改与主干合并。为了做到这一点,我在我的机器上创建了两个工作文件夹,名为BRANCH和TRUNK。我在BRANCH目录中创建了一个svn co分支,在TRUNK文件夹中创建了一个svn co的trunk。退房完成后,我继续打开了我在分支机构所做的所有签到的颠覆历史。获得所有签到的版本号后,我进入了TRUNK文件夹并发出以下命令:

 svn merge --dry-run -r1xx0:1xx1 svn+ssh://pathtomybranch/

有趣的是,上面的命令执行没有任何输出,这实际上表明我的分支和我的版本没有任何差异。这是不可能的,因为我尝试合并的版本的文件内容不同。

有人对这里可能出现的问题有一些想法吗?

由于

1 个答案:

答案 0 :(得分:5)

首先必须使用自创建分支以来对trunk进行的所有更改来更新分支(如果在创建分支后没有对主干进行任何更改,则可以跳过此步骤):

cd branch
svn merge url://of/trunk

然后您可以选择两种相同的(?)方法:

1)使用reintegrate分支:

cd trunk
svn merge --reintegrate url://of/branch

或2)使用两棵树之间的合并:

cd trunk
svn merge url://of/trunk url://of/branch

方法2)计算两个树“trunk”和“branch”之间的差异,并将它们合并回当前目录(即trunk)。

方法1)只是方法2)的句法糖。

请注意,对于这两种方法,您都不必指定修订号。所有最新版本的SVN都会自动为您处理。