【问题标题】:SVN branch mergeSVN 分支合并
【发布时间】:2012-10-22 20:59:11
【问题描述】:

我有一个关于在 Subversion 中合并的问题。所以我有一个树干,然后是来自树干的两个分支。所以假设我有一个主干,然后是从主干创建的分支 A,然后是从主干创建的分支 B。

然后假设我对 B 进行了更改,然后对主干进行了更改,然后将主干更改合并到 B 并检查到分支 B。我现在想合并到分支 A,而不是合并到主干。是否可以将分支 B 合并到分支 A 中?还是我必须先将分支 B 合并到主干,然后再合并到分支 A?

【问题讨论】:

  • 当然有可能。修订只是文件中的更改,没有阻止您做事的魔法。问题是:您希望将哪些更改合并到分支 A 中?
  • 我想合并分支 B 自创建以来和分支 A 创建以来可用的所有更改。正如我上面提到的,此时分支 B 与 TRUNK 是最新的。
  • 那就继续吧:试着想象一下 svn merge 命令表达了什么:“接管从修订版a 到修订版b 对指定url 发生的所有更改”。简单的。周围没有魔法。永远记住,“分支”或“主干”的概念没有任何技术意义。只是名字而已。

标签: svn merge tree branch conflict


【解决方案1】:

你可以合并任何你想要的分支

【讨论】:

    【解决方案2】:

    您可以在 SVN 中单独合并修订。所以是的,只需选择您想从 B 合并到 A 的修订,它应该可以正常工作。如果 A 中缺少 B 中存在的文件并且您尚未合并它们的添加,那么您可能会遇到树冲突。您可以通过在最初添加到 B 的位置合并丢失的文件来清除它们。

    【讨论】:

    • 是的,我看到了树冲突。假设我现在在分支 A。我可以通过运行 svn log --stop-on-copy branchB 和我看到的任何版本#来查看分支 B 上的第一个修订版,然后我只需要运行“svn merge -r rev#:HEAD url/branches/branchB”(假设我在 branchA 工作区)。
    • 树冲突通常表明正在合并的某些内容在目标分支中不存在或已被删除。因此,您不能将更改合并到修订历史中不存在的内容中。尝试通过确保就文件结构而言,源分支与目标分支完全一致来解决冲突,然后如果需要,合并添加或删除了树冲突抱怨的文件的修订。
    猜你喜欢
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    相关资源
    最近更新 更多