【问题标题】:How can I "force" a branch upon the trunk, in the case I can't "reintegrate"?在我无法“重新整合”的情况下,如何在主干上“强制”分支?
【发布时间】:2011-02-15 03:19:24
【问题描述】:

我们从主干创建了一个分支,在该分支上进行了重大重构。同时,主干进行了一些修订并进行了一些修复。我们希望在分支上进行这些更改,因此我们不希望“赶上”将主干合并到分支,因为我们不想混合新旧代码.但是没有这个,我无法将分支重新整合回主干。

有没有办法“按原样”将分支强加到主干上?

(我考虑的一个想法是将主干撤消(“反向合并”)回到分支开始的修订版,然后在分支上合并它是安全的 - 什么都不应该发生。然后我可以重新整合。什么你觉得呢?)

【问题讨论】:

    标签: svn merge branch


    【解决方案1】:

    您可以使用,正如您提到的反向合并。检查后备箱

    svn merge -rHEAD:RevisionTheBranchWasCreated ^/trunk
    

    这将撤消您在创建分支后所做的所有更改。之后,合并应该没有任何问题。

    更新:^/trunk 仅适用于 Linux。在 Windows 上,您需要 ^^/trunk

    【讨论】:

    • 谢谢。不确定符号“^/trunk”,这是存储库的路径还是工作副本?
    • 对不起。 ^/ 从工作副本内部使用。如果您在外面,则必须使用完整的 URL(^/ 从 1.6.X 开始是 SVN)
    【解决方案2】:

    假设您可以很好地丢失这些更改,那么这是一个可接受的解决方案,尽管您可能想考虑简单地将当前主干重命名为分支并将分支重命名为主干:

    svn move https://path/to/repo/trunk https://path/repo/branches/newbranchname
    svn move https://path/to/repo/branches/refactoring https://path/to/repo/trunk
    

    尽管如此,您真的确定不想从主干中引入更改吗?您可能需要非常仔细地考虑这一点。即使你已经做了很多重构,如果在主干上做了可用的工作,你仍然可能需要非常仔细地查看它,以免浪费所做的工作。

    【讨论】:

    • 非常感谢。这些更改是我同事的修补程序,他们声称它们都存在于新版本中。
    猜你喜欢
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 2021-10-09
    • 2020-08-04
    • 2013-03-12
    • 2021-01-12
    相关资源
    最近更新 更多