【问题标题】:Subversion Branching / Switching颠覆分支/切换
【发布时间】:2011-05-18 14:19:56
【问题描述】:

目前我一直在 GIT 工作,非常满意。

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

现在我想分支稳定版 1.0,我们继续在主干上开发。

现在我的结构如下:

branche
--app-1.0

trunk
--app

现在有两种情况:我继续在后备箱中开发。我修复了一个也出现在 1.0 版的错误。在一个 Java 类中。只有 1 行代码发生了变化。除了这一行之外,如何在不覆盖“旧”类的情况下将其提交给 app-1.0?

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

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

什么是最佳实践?

在我的 GIT 上,我总是反其道而行之:我创建了一个分支 app-1.0 app-2.0 在那里我开发,当我发现它稳定时,我将它合并到主干,这始终是我稳定的代表版本。

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

【问题讨论】:

  • 如果你知道 Git,为什么不直接使用 git svn 来满足 subversion repo 并像你习惯的那样使用 Git?
  • 我们正在开发管理硬件,如果开发计算机是特殊的,我们可能不会更改任何东西:(
  • 你不能从外置硬盘/USB 棒上执行msysgit 的便携版?

标签: svn merge branch


【解决方案1】:

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

来自 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 上进行了分支,并且您希望将主干上的更改合并到您的分支中,您可以在您的分支的工作副本中执行此操作:

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

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

【讨论】:

    【解决方案2】:

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

    如果你有分支检出,你可以这样做:

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

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

    -c 等价于-r &lt;revision-1&gt;:&lt;revision&gt;)。

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

    【讨论】:

    猜你喜欢
    • 2010-12-08
    • 1970-01-01
    • 2010-09-16
    • 2011-01-25
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    相关资源
    最近更新 更多