My Subversion repository has several externals, one of which I was working with. I accidentally removed several files that I needed, so I went to revert them:
$ svn revert -R ~/Code/project/external1
Skipped '~/Code/project/external1'
I thought this was odd, so I tried removing the entire directory:
$ rm ~/Code/project/external1 -r
$ svn revert -R ~/Code/project/external1
Skipped '~/Code/project/external1'
It seems Subversion doesn't want to descend into the external. How do I cause Subversion to revert the directory, in both the ideal first case and in my rashly-considered second case?
Each external directory is basically its own self-contained working copy. It looks like SVN doesn't like doing operations from your real working copy on the external working copy. So just take advantage of the underlying mechanism and use the external's working copy:
cd ~/Code/project/external1
svn revert -R .
Or directly from the current folder (great for scripts)
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