【问题标题】:What is the best way to roll-back a change set using Subversion?使用 Subversion 回滚更改集的最佳方法是什么?
【发布时间】:2008-10-16 20:49:20
【问题描述】:

我一直在使用各种源代码控制系统,但在恢复更改方面我还不是专家。鉴于这种情况,有人可以帮忙吗:

场景

  • 鉴于修订版 #5 中引入了一个错误
  • 修订版 #5 中更改了 3 个文件
  • 2 个文件中的更改是导致该错误的原因
  • 当客户发现修订版 #9 (HEAD) 版本中的错误时
  • 然后必须将导致修订版 #5 中的错误的 2 个文件恢复到修订版 #4
  • 从修订 #6 到 HEAD 的更改必须应用于这两个文件

我希望必须有一种方法来比较两个文件的修订 #4 和 #5,并生成一个补丁来撤消修订 #5 中的更改,然后可以将其应用于 HEAD 修订以回滚缺陷.

【问题讨论】:

  • 了解您使用的是哪个 svn 客户端会很有帮助。是命令行 svn 吗?

标签: svn version-control


【解决方案1】:

通常reverse merge 足以回滚已提交的更改...

【讨论】:

    【解决方案2】:

    要了解详细信息,请参阅: svn manual - Undoing Changes

    正如马克所描述的,你会想要做:
    svn 合并 -r 5:4 文件 1 文件 2
    这意味着向后合并从 4 到 5 的变化,即。撤消更改

    您也可以输入:
    svn 合并 -c -5 文件 1 文件 2
    这意味着应用在向后提交修订版 5 时发生的更改。

    接下来您应该手动查看更改。

    最后,您必须提交更改(以上合并仅更改了您的工作副本)。

    【讨论】:

      【解决方案3】:

      这是一本link to svn 的书,解释了所有关于还原和历史的信息。

      要进行 diff,您可以执行 svn diff -r 4:5 somefile.txt 之类的操作

      【讨论】:

      • 非常好,这正是我想要的。谢谢。
      【解决方案4】:

      我假设您在我的回答中使用 TortoiseSVN。

      我认为您的方案不会导致文件回滚,因为您仍然希望保留每个文件的历史记录。大多数时候,您要做的只是找到并修复错误,然后对该文件提交新的更改。

      如果你想比较两个版本,在tortoiseSvn中很容易,右键单击文件,然后进入TortoiseSvn->显示日志。然后选择要比较的两个版本,右键单击然后比较版本。

      如果你想找出 bug 的负责人,你可以使用 TortoiseSVN 中的 Blame 菜单项...这会让你知道是谁修改了每一行以及在哪个修订版本。

      哦,如果您想将文件恢复到以前的版本,您可以在 TortoiseSvn->Show Log 中执行此操作,然后选择要恢复到的版本,右键单击并选择 Revert to this revision。

      【讨论】:

        【解决方案5】:

        我会选择 EtienneT 的回答。但是在“恢复到这个版本”下面,还有一个选项“恢复这个版本的更改”。该选项将完全符合 Robert Walker 撤消修订版 #5 的更改的需要。不要忘记提交更改。

        【讨论】:

          【解决方案6】:

          查看当前版本,然后 svn 合并 -r 5:4 文件 1 文件 2 (凭记忆,可能不完全正确)

          【讨论】:

            【解决方案7】:

            我认为你需要先在 5:4 之间反向合并,然后恢复正确的文件

            1. svn merge -r 5:5 http://svn.example.com/repos/calc/trunk

            2. svn 恢复正确的文件

            您可能最终会在 2buggy 文件中处于奇怪的状态 希望您可以手动解决。

            【讨论】:

              【解决方案8】:

              如果您使用的是http://tortoisesvn.tigris.org/,那么这是一个相当简单的过程。只需右键单击文件并选择“日志”以获取从现在到选定的恢复之间的更改列表。然后就是将这两个文件恢复到修订版 #4 并提交更改 :)

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2015-09-16
                • 1970-01-01
                • 2016-03-30
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多