合并Subversion分支

4

只是问一个简单的问题。什么是合并两个Subversion分支的最佳方法?

我希望将分支名称3661合并到分支名称2011-01-17

3661的修订代码为16658

2011-01-17的修订代码为16613


唯一重要的修订号是创建分支的修订号:这就是您所说的修订代码吗? - Rup
修订代码是提交版本。 - kylewelsby
1个回答

7

以下是我使用命令行的方法:

(1) 获取分支创建时版本号为3661的修订记录,如下:

svn log --verbose --stop-on-copy http://url/to/branch/3661

从输出中拿到最小的修订版本号,假设是911。

(2) 检出分支 2011-01-17 的最新代码,在主目录下运行此命令。这将显示所有冲突和更新,但不会执行任何操作。

 svn merge --dry-run -r 911:HEAD http://url/to/branch/3661

(3) 如果您同意这些更改,请执行实际合并

 svn merge -r 911:HEAD http://url/to/branch/3661

目前服务器上还没有任何提交记录,你只是将本地副本合并了而已。现在你可以尝试修复所有冲突的文件。

(4) 如果你想将合并后的结果持久化到服务器上,请执行以下操作提交更改后的文件。

 svn commit -m "Merged 3661 changes into 2011-01-17"

希望这能帮到你。你可能想看看《红皮书》的这一章节:http://svnbook.red-bean.com/en/1.0/ch04s04.html
此外,你需要命令行SVN客户端。你可以从Subversion的网站上下载它。

一个需要注意的地方。如果你曾经在分支“3661”上使用过Tortoise的“重命名”功能,那么--stop-on-copy只会回到这个点。因为(在Tortoise中)重命名实际上是复制和删除操作。我是通过吃亏才学会这一点的。 :< - granadaCoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接