【问题标题】:How can you "Revert to this Revision" with a specific revision number from the Command Line?如何使用命令行中的特定修订号“恢复到此修订版”?
【发布时间】:2013-05-12 17:04:34
【问题描述】:

我目前正在制作一个脚本,其中我已经熟悉了 Tortoise SVN 及其相应的命令行功能。

我已正确更新脚本以通过一系列测试找到正确构建的“修订版”。在脚本记录该变量(具体的版本号)后,我更新到 HEAD 修订版(这样我就可以在遇到问题的这个过程之后提交)。

我的问题: 如何从命令行恢复到特定的修订号?

我知道你可以使用 svn update -r ,但是你如何通过 revert 来做到这一点,这样它将我的工作副本更改为修改后的状态;以后可以犯吗?我只问是因为 revert 不接受 -r 参数;除非我犯了错误。

我从这个问题中发现了 Revisions/Updates 它是如何工作的: reverting with tortoise SVN 但我找不到任何可靠的答案。任何帮助将不胜感激。

【问题讨论】:

    标签: svn command-line tortoisesvn


    【解决方案1】:

    正确使用术语很重要,因为“revert”在 Subversion 中意味着非常具体的东西,而在英语中它可以根据上下文有多种含义。

    • Subversion“revert”正在撤消任何本地未提交的更改并将项目重置回其最后一个已知的存储库状态。这不是您想要的。
    • 通过svn update -r“还原”实际上只是将文件更新到特定(过去)修订版。您正在“恢复”到旧版本,但您并没有真正更改任何内容(如果您尝试编辑然后提交,您将被拒绝,因为您没有编辑最新版本)。同样,这不是您想要的。
    • 如您所描述的那样,将其描述为“回滚”会更好 - 您希望撤消在当前修订版和过去某个修订版之间所做的任何更改,然后提交项目的状态(s ) 作为新的HEAD。在 Subversion 中,这称为反向合并。这被描述为in the Subversion manual - 您向svn merge 提供一系列修订号,以相反的顺序(最新到最旧),然后提交生成的工作副本。

    【讨论】:

    • 这行得通,谢谢!我使用术语“Revert”,因为这是他们在 GUI 中使用的术语。每当我恢复到修订时,它都会对其进行修改,以便可以重新提交。但是在阅读了本节之后,我明白了为什么它被称为反向合并。我没有在寻找这个术语,因为我没有使用它。菜鸟的错误。干杯! :)
    • Awareness win:“正确使用术语很重要,因为“revert”在 Subversion 中的意思非常具体,而在英语中,它可以根据上下文有多种含义。”
    【解决方案2】:

    在很多情况下svn merge 更可取

    但是,当我遇到类似问题时,我发现 checkout 到较早的(稳定)修订版更合适,因为它不会更改我的本地更改,我以后仍然可以更新到当前版本

    【讨论】:

      猜你喜欢
      • 2019-02-15
      • 2010-11-15
      • 2023-03-11
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 2021-09-04
      • 2011-11-24
      • 2012-03-14
      相关资源
      最近更新 更多