2012-03-07 82 views
2

我对其中一个分支做了一大堆更改。现在我正试图将这些更改与主干合并。为了做到这一点,我在我的机器上创建了两个名为BRANCH和TRUNK的工作文件夹。我在BRANCH目录中创建了一个svn分支,并在TRUNK文件夹中创建了一个trunk的svn co。一旦结帐完成,我继续打开所有在分支上进行的支票的颠覆历史。一旦我得到了我所有的检查插件的版本号,我在我的TRUNK文件夹中去,并发出以下命令:使用subversion和intellij将分支与分支合并

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

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

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

感谢

回答

5

首先必须有,因为你所创建的分支(你可以跳过这一步,如果没有更改到主干因为分支已经做出了主干所做的所有更改更新分支创建):

cd branch 
svn merge url://of/trunk 

然后你就可以在两个相同的()方法中进行选择:

1)使用重返分支:

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

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

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

方法2)计算两个树“主干”和“分支”之间的差异,并将它们合并回当前目录(它是主干)。方法1)仅仅是用于方法2的语法suggar)。

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

+0

该分支在该点仍然可用吗?它继续生活吗? – 2013-12-13 17:40:54

+1

将分支重新整合到树干上后应删除分支。有关详细解释为什么这是必要的,请参阅bit.ly/1dAQs3A它们还解释了如何在重新集成后保持活动状态的方法。 – stmax 2013-12-14 21:38:56

+0

所以这个保持活力的方法是安全的并且合理吗? – 2013-12-15 01:34:23