【问题标题】:What's the difference between "svn merge --reintegrate" and svn merge without reintegrate if I'd like to merge a branch onto the trunk如果我想将分支合并到主干上,“svn merge --reintegrate”和 svn merge without reintegrate 有什么区别
【发布时间】:2013-08-18 00:51:48
【问题描述】:

svn book 中,它说merge--reintegrate 是“将所有源URL 的更改合并到工作副本中”。

我想将一个分支合并回主干。 Some places 说“绝对有必要”在合并时调用reintegrate,然后立即调用delete the branch,我认为这很麻烦。 Other places 根本不提重新整合。我有 svn 1.6.11。

所以我现在不知道该怎么办。

【问题讨论】:

    标签: svn version-control


    【解决方案1】:

    升级到svn 1.8,不用再担心了,它会自动弄清楚该怎么做。

    来自svn 1.8 release notes

    在合并来自另一个分支的所有符合条件的修订期间,Subversion 1.8 将自动决定合并是否重新集成一个分支。因此,重新集成分支不再需要 --reintegrate 选项才能正确操作。

    【讨论】:

    • 合并后是否还需要删除分支(merge --reintegrate)?
    • 如果您关注this little step,则无需在重新集成后删除分支。我不知道为什么 Subversion 不会自动为您执行此操作。
    【解决方案2】:

    同步合并重新整合合并完全不同。前者用于将父分支上所做的所有更改合并到目标分支(通常是功能分支),这些更改尚未合并。后者用于将(特征)分支合并回父分支。基本上这意味着创建(功能)分支的临时克隆,从父分支到临时分支进行同步合并,最后父分支被临时分支替换。换句话说,临时分支包含对(功能)分支和父分支所做的所有更改。

    出于某种原因,一些开发人员不了解其中的区别。因此,SVN 开发人员在 SVN 1.8 中删除了选项--reintegrate。在此版本中,该工具会自动检测是否应使用同步合并重新集成合并

    如果您使用旧版本,则应使用选项--reintegrate 进行重新集成合并。请注意,如果您记住一些事情,在重新集成后仍然可以使用 (feature) 分支。 SVN 的书很好地解释了这一点:

    【讨论】:

    • “同步合并”是否只是普通的merge,即没有--reintegratemerge
    • 是的,同步合并是默认设置 - 没有 --reintegrate-c-r
    猜你喜欢
    • 2014-07-01
    • 2011-08-14
    • 2016-09-11
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-20
    相关资源
    最近更新 更多