【问题标题】:SVN Version Rollback QuestionSVN版本回滚问题
【发布时间】:2011-01-29 11:41:50
【问题描述】:

我用的是SVN(TortoiseSVN),经常遇到以下情况:

我想放弃自特定(旧)修订版以来的任何更改,并将所有文件转回此特定(旧)版本。然后我想进一步工作,就好像这个特定的(旧)修订版是最新的一样,即我希望能够将特定的旧修订版作为新修订版提交。

我为这个问题找到了几个解决方案(例如 stackoverflow.com/questions/402159/roll-back-or-revert-entire-svn-repository-to-an-older-revision 或 rustyrazorblade.com/2007/04 /how-to-roll-back-commits-to-an-earlier-version-of-a-repository-in-svn/)。

但是,我想知道是否有一种简单的方法可以回滚到特定版本。我认为版本控制对这类事情有好处(还是我误解了什么?)。

是否有一个简单的命令/按钮/等。将我的本地存储库更新为旧版本并声明它是最新版本?

由于我认为没有“内置”功能可以做到这一点,我想知道是什么原因导致开发人员决定不集成此功能。有人知道吗?

【问题讨论】:

    标签: svn revision


    【解决方案1】:

    无论出于何种原因,SVN 人员决定将此称为“反向合并”。在 TortoiseSVN Merge 对话框中,选中 Reverse Merge 框,并确保修订框的内容类似于 HEAD-324(其中 324 是您要返回的版本)。

    【讨论】:

      【解决方案2】:

      为了安全起见,我会将当前主干移动到一个分支中,然后在您想要的修订号处复制一份作为主干。

      【讨论】:

      • 这对我来说似乎过于复杂。此外,如果有人在您执行此操作时尝试更新或提交,他们会想知道存储库到底发生了什么。
      【解决方案3】:

      我不确定我是否理解正确,因为例如您引用的链接 (Roll back or revert entire svn repository to an older revision) 已经有解决方案:reverse merge(如 Powerlord 所述)。

      来自 TSVN 合并文档:

      如果您想合并更改 您的工作副本,以恢复 已经发生的改变 已提交,选择要修改的版本 还原并确保反向合并 复选框被选中。

      我认为要记住的重要一点是,不要“回滚更改”,而是“合并它们”然后重新提交。可以这么说,你“继续前进”(因为 SVN 中没有“倒车”;它毕竟是版本控制,不应该“忘记事情”:))。

      如果您不小心提交了由于某种原因绝对不能在存储库中的内容,您必须(并且可以)更努力地“再次将其取出”(也在您链接的线程中描述:备份和恢复)。

      【讨论】:

        【解决方案4】:

        在 TortoiseSVN 中,有一种更简单(或者至少更直观的恕我直言)的方法来做到这一点。我假设它实际上在幕后做的是其他人提到的“反向合并”。

        1. 右键单击要回滚的文件/文件夹。
        2. 从 TortoiseSVN 菜单中单击“显示日志”。
        3. 选择要撤消的修订。
        4. 右键单击这些修订。
        5. 选择“Revert changes from this revision”——不要与“Revert to this revision”混淆!
        6. 点击“是”
        7. 请记住,这只会更改您的工作副本。确认这符合您的预期,然后提交,在您的日志消息中添加有关“回滚”或“反向合并”的内容

        【讨论】:

          猜你喜欢
          • 2010-12-03
          • 2010-09-28
          • 2018-07-23
          • 1970-01-01
          • 1970-01-01
          • 2018-11-24
          • 2021-07-20
          • 2013-05-12
          • 1970-01-01
          相关资源
          最近更新 更多