Subversion分支/切换

时间:2011-05-18 14:19:56

标签: svn merge branch

目前我一直与GIT合作并且非常满意。

由于一些项目限制,我们接管了一个已经开始的项目,该项目最近达到了1.0生产版本。

现在我想分支稳定版本1.0,我们继续在后台开发。

现在我的结构如下:

branche
--app-1.0

trunk
--app

现在有两种情况:我继续在后备箱中进行开发。我修复了一个也碰到1.0版本的bug。在一个Java类中。它只有一行代码会发生变化。如何在没有覆盖“旧”类的情况下将此提交到app-1.0,除非使用这一行?

第二种情况:有人要我检查是否有错误。我切换到app-1.0,找到bug,修复它,我偶然发现第二个bug,修复它,将它提交到app-1.0。如何将其提交到主干?

两种情况下合并命令都正确吗?

最佳做法是什么?

在我的GIT上,我总是反过来:我创建了一个分支app-1.0 app-2.0我开发的地方,当我发现它稳定时,我将它合并到主干,这总是代表我的稳定版本

我希望你们能帮助我: - )

2 个答案:

答案 0 :(得分:2)

对于这两种情况:你合并!

来自SVN书:

将分支合并回主干(假设您有主干的工作副本,并且分支是在修订版250中创建的):

$ svn merge -r 250:HEAD http://svn.red-bean.com/repos/branches/my-branch
U  myproj/tiny.txt
U  myproj/thhgttg.txt
U  myproj/win.txt
U  myproj/flo.txt

如果你在版本23中分支,并且想要将trunk上的更改合并到你的分支中,你可以从你的分支的工作副本中执行此操作:

$ svn merge -r 23:30 file:///tmp/repos/trunk/vendors
U  myproj/thhgttg.txt

http://svnbook.red-bean.com/en/1.0/re16.html

答案 1 :(得分:1)

您可以轻松地将单个修订从主干到分支或从分支到主干合并。合并是正确的命令。

如果您已签出分支,则可以执行以下操作:

svn merge -r <from_revision>:<to_revision> http://host/path/to/trunk

svn merge -c <revision> http://host/path/to/trunk

-c相当于-r <revision-1>:<revision>)。

在SVN中,合并通过获取两个修订版本之间的差异并将它们应用于您的工作目录来实现。合并后,您必须提交更改。如果要将bug修复从分支到主干,请转到主干工作目录,然后从分支URL合​​并。