还原Subversion中对外部所做的更改

时间:2014-07-15 21:46:10

标签: svn revert

我的Subversion存储库有几个外部,其中一个我正在使用。我不小心删除了我需要的几个文件,所以我去了它们:

$ svn revert -R ~/Code/project/external1
Skipped '~/Code/project/external1'

我觉得这很奇怪,所以我尝试删除整个目录:

$ rm ~/Code/project/external1 -r
$ svn revert -R ~/Code/project/external1
Skipped '~/Code/project/external1'

Subversion似乎并不想进入外部。在我轻率考虑的第二种情况下,如何在理想的第一种情况中使Subversion恢复目录?

2 个答案:

答案 0 :(得分:1)

只需更新声明外部属性的基目录:

svn update ~/Code/project

Subversion会注意到外部已过期/缺失并重新实例化所有内容。

答案 1 :(得分:1)

每个外部目录基本上都是它自己的独立工作副本。看起来SVN不喜欢从外部工作副本上的真实工作副本中进行操作。因此,只需利用底层机制并使用外部工作副本:

cd ~/Code/project/external1
svn revert -R .

或直接从当前文件夹(非常适合脚本)

svn revert -R .
svn revert -R ./External_a
svn revert -R ./External_b
svn revert -R ./External_c/sub_external_i
svn revert -R ./External_c/sub_external_j