【问题标题】:Merge from one branch's working copy to another branch (locally, w/o committing)从一个分支工作副本合并到另一个分支(本地,无需提交)
【发布时间】:2018-04-26 10:12:25
【问题描述】:

我的大部分经验是使用 Perforce,而我上一次 svn 经验是很久以前的事了,所以我对 (Tortoise) svn 还不是很舒服(再次)。

我想将更改从工作副本转移到另一个相关分支中新签出的工作副本。

准确地说,考虑:

    trunk_revx
        |     \
        |      Branch_A
    trunk_revy   \
        |\       WC_A (containing my changes)
        | \
        |  Branch_B
        |    \
        |    WC_B (fresh, where I want to merge my changes to)

哪个是让我在不提交任何内容的情况下在 WC_A、trunk_revx 和 WC_B 之间进行三向合并的正确命令?合并(调用哪个 WC 文件夹?)或切换(再次调用哪里?)?

所有的术语都不一样,所以我有点迷茫;)

【问题讨论】:

    标签: svn tortoisesvn three-way-merge


    【解决方案1】:

    我建议你采取以下行动:

    1. 来自 WC_A:通过使用 TortoiseSVN 创建补丁文件来保存本地更改(以防后续操作失败并丢失更改)
    2. 从 WC_A:执行 TortoiseSVN ==> switch... 并切换到 Branch_B:
      • Branch_B 合并到 WC_A(本地)
      • 并保留您的本地修改
      • 现在您的 WC_A 指向分支 B

    您只需要处理您的 WC_A 变成您的 WC_B 的事实!

    或者,如果您不想提交到 Branch_A,但无论如何都可以提交,您也可以将本地更改提交到一个新的小分支(branch_A 的一个分支)并从这个新分支执行 merge 到 Branch_B .

    【讨论】:

    • 谢谢!事实上,这也是我最终所做的,甚至在我阅读您的评论之前,我现在正在文件夹差异合并我更改的文件到另一个工作区文件夹(其中有一些客户端生成的东西不存在于切换的工作区)。我希望有一种更舒适的方式,比如在 Perforce 中——尽管我们在使用它的公司中诅咒它,它(或者更确切地说,它的工具套件;我认为对于 SVN 实施它不会太难也)确实有它的便利......
    • @JohannStudanski SVN 并没有真正处理本地工作副本之间的合并。您应该毫不犹豫地创建新分支(您可以稍后删除)并提交。请注意,您也可以使用stackoverflow.com/questions/3564487/… 中所述的补丁。
    • 我正在开发一个外部 SVN 存储库,它的规则和流程非常严格,而且权限很少。很遗憾。所以我不能简单地为自己创建一个分支(我必须请求一个并等待两周左右直到有人批准它)。 =/
    猜你喜欢
    • 2016-08-25
    • 2016-11-07
    • 2011-02-23
    • 2016-08-15
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多