如何从命令行恢复到特定的修订版本号?
我知道您可以svn update -r,但是如何通过恢复来做到这一点它将我的工作副本更改为修改状态;以后可以承诺吗?我只问是因为revert不接受-r参数;除非我犯了一个错误。
我从以下问题中发现了修订/更新的工作方式:
用乌龟SVN进行还原
,但是我找不到任何可靠的答案这个。任何帮助将不胜感激。
#1 楼
正确理解术语非常重要,因为“还原”在Subversion中是非常具体的意思,而在英语中,它可以根据上下文具有多种含义。Subversion的“还原”正在撤销任何本地的,未提交的更改,并将该项目重置回其最近的已知存储库状态。这不是您想要的。
通过
svn update -r
“还原”实际上只是将文件更新为特定的(过去的)修订版。您正在“还原”到旧版本,但是您并没有真正更改任何内容(并且如果您尝试编辑然后提交,那么您将被拒绝,因为您没有在编辑最新版本)。再次,这不是您要查找的内容。似乎可以将其描述为还原,最好将其描述为“回滚”-您想要撤消当前修订版和过去,然后将项目的状态提交为新的
HEAD
。在Subversion中,这称为反向合并。这在Subversion手册中有所描述-向svn merge
提供一系列修订号,以相反的顺序(从最新到最早),然后提交生成的工作副本。#2 楼
在许多情况下,svn merge
是更可取的,但是当我遇到类似的问题时,我发现检出到较早(稳定)的修订版更为合适,因为它不会更改本地更改,并且以后仍更新到当前版本
评论
这行得通,谢谢!我使用的是“还原”一词,因为这是他们在GUI中使用的术语。每当我恢复到修订版本时,都会对其进行修改,以便可以重新提交。但是在阅读了本节之后,我了解了为什么将其称为反向合并。我之所以没有这个词,是因为我没有使用它。新秀的错误。干杯! :)
–克里斯
13年5月17日在14:01
赢得意识:“正确定义术语非常重要,因为“还原”在Subversion中表示非常具体的含义,而在英语中,根据上下文可以具有多种含义。”
– ahnbizcad
2015年8月3日在20:25