当寻找SVN还原命令的解释,我看到了如下的解释:需要澄清SVN恢复
此子命令不需要网络接入,并解决任何 冲突状态。但是,它不会恢复已删除的目录。
我想知道,为什么它不需要网络访问,以及为什么它不能恢复已删除的目录。
当寻找SVN还原命令的解释,我看到了如下的解释:需要澄清SVN恢复
此子命令不需要网络接入,并解决任何 冲突状态。但是,它不会恢复已删除的目录。
我想知道,为什么它不需要网络访问,以及为什么它不能恢复已删除的目录。
svn revert
不需要网络访问,因为每个工作副本都存储每个文件的“原始”副本,因为它是在上次更新时从存储库下载的。因此revert
将该文件复制到您的工作副本中。
至于删除的目录,这可能不再是真实的。在1.7之前的版本中,每个目录可以被当作一个独立的工作副本,因此它可能无法恢复那些没有原始副本的目录。
svn
在.svn
文件夹中保存有关工作副本的信息,并使用它在工作副本上执行一些管理任务,而无需访问资源库即通过网络。如果你浏览这些目录,你会发现一个本地数据库文件和一堆.svn-base
文件的束缚子目录。这些反映了您上次执行svn update
或svn checkout
时工作副本的状态。因此,如果您在工作副本中更改文件svn
可以根据相应的本地保存的.svn-base
文件来区分差异,从而可以恢复更改。
有关目录结构的信息不会保存。如果要恢复目录上的更改,最简单的方法是从该目录的父级执行
svn update
- 显然需要存储库并因此需要网络连接。
看来你正在阅读老版本的svn客户端的帮助,发布在this question的答案中。
随着1.7版(至少,我不能确认哪个版本的正是这种变化是)及以上svn help revert
状态:
注:此子命令不需要网络访问,并且解决所有的冲突状态。
而且在我的本地拷贝的一个经过一些测试:
使用文件系统
Cmd-$> rd /Q /S <working copy>
删除或使用SVN命令
Cmd-$> svn remove <working copy>
D <working copy>
D <working copy>\<file1>
D <working copy>\<file2>
删除使用命令
Cmd-$> svn revert -R .
我能够在两种情况下恢复。
当你说“我看到下面的解释”时,通常会提供一个链接来帮助他人阅读你所指的内容,并确保它是一个值得信赖的来源,而且你没有误解任何东西。 – alroc