【问题标题】:How do I "undo" merging a specific change set in svn如何“撤消”合并 svn 中的特定更改集
【发布时间】:2011-09-16 15:17:49
【问题描述】:

我有以下场景。

1) 获取 repo 的本地副本。

2) 撤消我不想要的更改集(修订版 120)。 svn 合并 -c -120 .

3) 做我修改文件的工作。

4) 现在我想“撤消”我在 (2) 中所做的事情,而不撤消我在 (3) 中所做的所有更改。用svn可以吗?

顺便说一句,我使用的是 Subversion 1.5.2 版,以防万一。

【问题讨论】:

    标签: svn merge revert


    【解决方案1】:

    您可以svn merge -c 120。这将完全撤消在 (2) 中完成的 svn merge -c -120

    【讨论】:

    • 我就是这么想的。但事实并非如此。事实上,它似乎什么也没做。 (顺便说一句,我正在使用 Subversion 命令行客户端,版本 1.5.2,不知道这是否重要...)
    【解决方案2】:

    您可以在 (2) 中创建的修订版上调用 svn merge -c -X。如果通过 (3) 表示您在工作树中有未提交的更改,您可以执行以下操作:

     svn diff >saved.diff
     svn revert -R .
     svn merge -c -X
     patch -p0 <saved.diff
    

    【讨论】:

    • 是的,我的意思是我的工作树中有未提交的更改。
    • 不会 saved.diff 包含我想要的更改和步骤 (2) 中的更改吗?因此,我认为这 4 个命令最终会让我回到原来的位置。
    • 你说得对,我还没有意识到你还没有提交合并。
    猜你喜欢
    • 1970-01-01
    • 2011-03-26
    • 2013-07-01
    • 2023-03-05
    • 1970-01-01
    • 2011-09-10
    • 2021-02-13
    • 2014-02-06
    • 2014-10-27
    相关资源
    最近更新 更多