【问题标题】:Can I get my revision history back in SVN?我可以在 SVN 中恢复我的修订历史吗?
【发布时间】:2013-07-26 14:53:23
【问题描述】:

我将 ProjectLocker 与 TortoiseSVN 和 VisualSVN 一起使用。

昨晚在试图找出一个奇怪的问题时,我将几个文件恢复到最后一个生产日期。那恰好是大约 3-4 次修订。

当较旧的文件无法解决问题时,我尝试进行更新以恢复两个相关文件的最新版本。

我现在看到(感谢“类似问题”)我应该使用 Update to Revision 而不是 Revert。

问题是,我能以某种方式取回这些修订版吗?

【问题讨论】:

    标签: svn tortoisesvn visualsvn


    【解决方案1】:

    您应该能够在恢复之前恢复到修订版。

    SVN 不直接支持回滚(乌龟称之为“Revert”)。相反,它会从旧版本中获取副本并将其复制到新版本上。

    但这仍然会保留您要恢复的修订版本。当您这次恢复时,您可能需要使用挂钩修订版(例如,对于修订版 123,您将恢复到 http://mysvndomain.com/repos/foo/bar@123

    【讨论】:

    • 在 Subversion 中,“revert”确实有意义——但不是这里使用的意思。 Subversion "revert" 正在撤消工作副本中未提交的更改。此处描述的内容最好描述为“撤消或回滚一组修订”。
    • TortoiseSVN 滥用“revert”这个词。它的日志对话框还具有“恢复到此修订版”和“恢复此修订版所做的更改”的选项。第一个实际上意味着“把你的工作副本放在这次提交之后”。第二个实际上意味着“撤消此提交在工作副本中所做的更改”。
    • @JBNizet 它没有被滥用,它是重载 :)
    【解决方案2】:

    还原您的还原,文件将像 2 次修订前一样。

    【讨论】:

      【解决方案3】:

      “revert”这个词在 Subversion 中有特殊的含义,这不是你在这里使用的。 Subversion revert 表示撤消工作副本中任何未提交的更改 - 在这种情况下不会触及存储库状态。

      更新到修订版也不适用于此处,因为您无法从该状态提交。

      您最初应该做的是所谓的reverse merge。您应用一个或多个更改的合并以将存储库状态回滚到先前修订版(您的最后一个生产修订版)中的状态,而不是仅仅复制文件然后将它们作为新修订版提交。您仍然可以在当前情况下执行此操作 - 反向合并您刚刚提交的更改,然后提交。这会让你回到“最近的”。您的修订历史看起来会有些奇怪,但不会完全损坏。

      【讨论】:

        猜你喜欢
        • 2017-09-16
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 2010-09-10
        • 1970-01-01
        • 2011-10-28
        相关资源
        最近更新 更多