2013-05-17 81 views
4

我目前正在制作一个脚本,我已经熟悉了Tortoise SVN并且它是相应的命令行函数。如何使用命令行中的特定修订号“恢复到此修订版”?

我有脚本正确更新,以找到哪些“修订”正确地与一系列的测试建立。脚本记录该变量(版本号的具体情况)之后,我更新到HEAD修订版(这样我可以在这个过程中遇到问题后进行提交)。

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

我知道你可以svn更新-r,但你怎么能做到这一点,使它改变我的工作副本到修改后的状态;后来可以承诺?我只问,因为恢复不接受-r参数;除非我犯了一个错误。

我发现它是如何修复/更新它从这个问题: reverting with tortoise SVN 但我找不到任何可靠的答案。任何帮助,将不胜感激。

回答

13

让术语正确是很重要的,因为“恢复”意味着Subversion中非常具体的东西,而在英语中它可以具有基于上下文的多种含义。

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

这个作品,谢谢!我使用的术语“恢复”,因为这是他们在GUI中使用的术语。每当我恢复修改时,它都会修改它,以便它可以重新提交。但在阅读本节后,我明白为什么它被称为反向合并。我没有找这个词,因为我没有用过它。菜鸟的错误。干杯! :) – Chris

+0

意识获胜: “让术语正确是很重要的,因为”恢复“意味着Subversion中非常具体的东西,而在英语中它可以具有基于上下文的多种含义。” – ahnbizcad

1

在许多情况下svn merge最好

但是当我发生了类似的问题,我发现一个结账到一个较早的(稳定)的版本是比较适合的,因为它不会改变我的地方改变,我可以以后仍然更新到当前版本

相关问题