我一直在阅读有关使用优秀且免费的Version Control with Subversion使用Subversion1.5进行分支/合并的书籍。我想我知道如何使用Subversion命令行客户端来执行我最经常需要的操作,这些操作包括:
使用干线中的更改更新分支
从分支的工作目录运行:
将分支合并到干线中
在主干的工作目录中运行:
服务器合并--重新集成http://svn.myurl.com/proj/branches/mybranch
但是,我们使用TortoiseSVN 1.5作为Subversion的接口。我想知道如何最好地使用TortoiseSVN执行这些操作。新对话框在主菜单上提供了三个不同的选项。
合并分支范围的分支和合并两个不同的树
据我所知,TortoiseSVN总是使用以下语法执行svn。
服务器合并--预演--强制From_URL@revN To_URL@revM路径
此外,重新集成分支通常会失败,并显示一条消息,指出某些目标尚未合并,因此无法继续,因此我必须使用选项#3。
我的问题是:
编辑
通过“试运行”测试,我发现命令行颠覆了操作
类似于TortoiseSVN中的选项#1 (合并修订范围),只要我将修订范围留空即可。
发布于 2008-11-18 17:44:46
行为取决于您的存储库的版本。Subversion 1.5允许4种类型的合并:
合并源URL1@N sourceURL2@M
版本1.5之前的Subversion只支持前两种格式。
从技术上讲,您可以使用前两种方法执行所有合并,但后两种方法支持Subversion1.5的合并跟踪。
当您的存储库是1.5+时,TortoiseSVN的选项将范围或修订映射合并到方法3,或者当您的存储库更旧时,将其合并到方法1。
在将特性合并到发布/维护分支时,您应该使用“合并修订范围”命令。
只有当你想要将一个分支的所有特征合并回一个父分支(通常是主干)时,你才应该考虑使用“重新整合分支”。
最后一个命令-Merge两个不同的树-只有当你想要跳出正常的分支行为时才有用。(例如,比较不同的版本,然后将差异合并到另一个分支)
发布于 2013-03-27 20:31:25
我不能很好地理解其他的答案,这是一个更多的笨蛋指南…
你可以通过go trunk -> branch
或branch -> trunk
来实现。我总是先做trunk -> branch
,修复那里的任何冲突,然后再合并branch -> trunk
。
将主干合并到分支/标记中
合并分支根上的分支/ tag
合并选项:我只是将它们保留为默认设置|单击‘
中
发布于 2008-11-18 16:02:42
你应该使用“合并修订范围”。
要将更改从主干合并到分支,请在分支工作副本中选择“合并修订范围”,然后输入主干URL以及要合并的起始和结束修订。
以相反的方式合并主干中的分支。
关于--reintegrate标志,在这里检查手册:http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html#tsvn-dug-merge-reintegrate
https://stackoverflow.com/questions/299142
复制相似问题