如何使用命令行中的特定修订号“恢复到此版本”?

时间:2013-05-17 13:40:47

标签: svn command-line tortoisesvn

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

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

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

我知道你可以svn更新-r,但你怎么能用revert这样做,这样它就可以将我的工作副本改为修改状态;以后可以提交?我只是问,因为revert不接受-r参数;除非我犯了错误。

我从这个问题中找到了它的修订/更新方式: reverting with tortoise SVN 但我找不到任何可靠的答案。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:14)

确保术语正确非常重要,因为"还原"意味着在Subversion中非常具体,而在英语中,它可以基于上下文具有多种含义。

  • Subversion" revert"正在撤消任何本地未提交的更改并将项目重置回其上次已知的存储库状态。这不是你要找的东西。
  • "复归" via svn update -r实际上只是将文件更新为特定(过去)版本。你是"还原"旧的修订,但你并没有真正改变任何东西(如果你试图编辑,然后提交,你将被拒绝,因为你没有编辑最新版本)。同样,这不是你正在寻找的。
  • 你似乎在描述它的回复将更好地描述为"回滚" - 您要撤消当前修订版与过去某些修订版之间所做的任何更改,然后将项的状态提交为新的HEAD。在Subversion中,这被称为反向合并。这被描述为in the Subversion manual - 您以相反的顺序(从最新到最旧)向svn merge提供一系列修订号,然后提交生成的工作副本。

答案 1 :(得分:1)

在许多情况下svn merge更可取

然而,当我遇到类似的问题时,我发现 checkout 更早适用于早期(稳定)版本,因为它不会更改我的本地更改,之后我仍然可以更新到当前版本