【问题标题】:How to do SVN merge from trunk to a branch within a range如何将SVN从主干合并到一个范围内的分支
【发布时间】:2013-04-12 23:17:22
【问题描述】:

假设我检查了主干,并且我是本地计算机中主干目录的根目录,并且我想将对主干(范围 62-65)所做的更改合并到一个分支。 我检查了trunk并做了svn up并运行了这个合并cmd。

svn merge -r 62-65 svn+ssh://url/to/branch

运行正常,但结果错误。 我运行 svn diff 查看这些更改并发现一个日志说我指定的范围已应用于分支。

Merged /trunk/MyApp:r12-15
Merged /branch:r62-65

我试图做的是从我当前在本地机器中的 62-65 范围内的主干中获取这些更改,并将这些更改应用到我指定的分支。

我该怎么做?

【问题讨论】:

    标签: svn merge


    【解决方案1】:
    1) use svn switch to go to branch
    2) svn mergeinfo --show-revs eligible "url_to_trunk"  (it will show eligible revisions)
    3) svn merge --dry-run -r 74299:74493 "url_to_trunk" (dry run is used to see what will happen after marge i.e., if any conflict or not. here merged from rev 74299 to rev 74493)
    4) svn merge -r 74299:74493 "url_to_trunk" (finally merge)
    5) svn commit (if expected result, commit merged files to branch)
    

    【讨论】:

      【解决方案2】:

      要将trunk 中的一系列修订合并到一个branch,您需要签出branch,而不是trunk。

      从你的工作副本的根目录做这样的事情:

      svn sw url/to/branches/branch
      svn merge -r 62:65 url/to/trunk
      

      ...然后修复任何合并冲突,如果您满意,请查看并提交。

      【讨论】:

      • 对于新手 - # 首先转到文件系统路径 - cd {{fs_path_destination_branch}}, # 然后使用 svn explorer 的 url 运行 "svn sw {{url_path_destination_branch}}", # 然后 svn merge {{url_path_source_branch/trunk}} 带有 svn explorer 的 url。
      【解决方案3】:
      1. 查看你的分支的工作副本

        svn co url/to/branch

      2. 输入工作副本根目录

      3. 从主干合并相关变更集并解决所有冲突

        svn 合并 - r 63:65 ^/trunk

      4. 验证所有内容是否已正确合并并提交分支。

      【讨论】:

      • 范围内的第一个版本号是不是要降低一个,例如:-r 61:65 以正确合并版本号 62 到 65 的变更集?
      猜你喜欢
      • 2015-09-15
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      • 1970-01-01
      • 2016-08-10
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多