【问题标题】:Merging trunk with branch using subversion and intellij使用 subversion 和 intellij 将主干与分支合并
【发布时间】:2012-03-25 10:39:30
【问题描述】:

我对其中一个分支进行了一大堆更改。现在我正在尝试将这些更改与主干合并。为此,我在我的机器上创建了两个名为 BRANCH 和 TRUNK 的工作文件夹。我在 BRANCH 目录中做了一个 svn co 分支,在 TRUNK 文件夹中做了一个 svn co 主干。签出完成后,我继续打开了我在分支上所做的所有签入的颠覆历史记录。获得所有签到的版本号后,我进入 TRUNK 文件夹并发出以下命令:

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

有趣的是,上面的命令执行时没有任何输出,这基本上表明我的分支和我的版本没有任何差异。这是不可能的,因为我尝试合并的版本的文件内容不同。

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

谢谢

【问题讨论】:

    标签: svn version-control merge intellij-idea


    【解决方案1】:

    您首先必须使用自创建分支以来对主干所做的所有更改来更新分支(如果自创建分支以来未对主干进行任何更改,则可以跳过此步骤):

    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)计算两棵树“trunk”和“branch”之间的差异,并将它们合并回当前目录(即trunk)。

    方法 1) 只是方法 2) 的语法糖。

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

    【讨论】:

    • 那个时候分支还能用吗?它会继续存在吗?
    • 分支在主干上重新集成后应该被删除。有关为什么这是必要的详细说明,请参阅 bit.ly/1dAQs3A 他们还解释了如何在重新集成后保持其活力。
    • 那么这个keep-alive方法安全且有意义吗?
    • 我不使用这种方法(我删除并重新创建),但听起来合理且安全。并且由于它写在“svn”书...
    猜你喜欢
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 2012-11-24
    • 2013-04-03
    • 1970-01-01
    相关资源
    最近更新 更多