我目前正在制作一个脚本,其中已经熟悉Tortoise SVN及其对应的命令行功能。 。在脚本记录了该变量(特定版本号)之后,我更新到HEAD修订版(这样我就可以在遇到麻烦的此过程之后提交)。问题:
如何从命令行恢复到特定的修订版本号?

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

我从以下问题中发现了修订/更新的工作方式:
用乌龟SVN进行还原
,但是我找不到任何可靠的答案这个。任何帮助将不胜感激。

#1 楼

正确理解术语非常重要,因为“还原”在Subversion中是非常具体的意思,而在英语中,它可以根据上下文具有多种含义。


Subversion的“还原”正在撤销任何本地的,未提交的更改,并将该项目重置回其最近的已知存储库状态。这不是您想要的。
通过svn update -r“还原”实际上只是将文件更新为特定的(过去的)修订版。您正在“还原”到旧版本,但是您并没有真正更改任何内容(并且如果您尝试编辑然后提交,那么您将被拒绝,因为您没有在编辑最新版本)。再次,这不是您要查找的内容。
似乎可以将其描述为还原,最好将其描述为“回滚”-您想要撤消当前修订版和过去,然后将项目的状态提交为新的HEAD。在Subversion中,这称为反向合并。这在Subversion手册中有所描述-向svn merge提供一系列修订号,以相反的顺序(从最新到最早),然后提交生成的工作副本。


评论


这行得通,谢谢!我使用的是“还原”一词,因为这是他们在GUI中使用的术语。每当我恢复到修订版本时,都会对其进行修改,以便可以重新提交。但是在阅读了本节之后,我了解了为什么将其称为反向合并。我之所以没有这个词,是因为我没有使用它。新秀的错误。干杯! :)

–克里斯
13年5月17日在14:01

赢得意识:“正确定义术语非常重要,因为“还原”在Subversion中表示非常具体的含义,而在英语中,根据上下文可以具有多种含义。”

– ahnbizcad
2015年8月3日在20:25



#2 楼

在许多情况下,svn merge是更可取的

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