我不能只是rm -rf $(find . -name '.svn')
,因为我的工作副本中有一些目录是无版本的(在svn:ignore上),同时也是其他svn存储库的副本。
my-repo
|+ directory
||- .svn (to delete)
||- files...
|+ another_directory
||- .svn (to delete)
||- files...
|+ directory_ignored (svn:ignore)
||- .svn (different working copy)
||- more files ...
所以我想告诉subversion只删除属于这个工作副本的所有.svn目录。
这可能吗?
目录结构非常复杂,因此手动操作会非常糟糕。
编辑:最终的工作解决方案是:
for i in $(export IFS=$'\n'; grep -l 'https://complete-repo-path/'
find . -name entries|grep .svn | sed 's/ /\ /'
| sed 's/.svn/entries//'); do echo $i.svn; done
答案 0 :(得分:1)
这似乎是一种解决方法,但仍然......
这将为您提供包含svn存储库的URL的目录列表:
grep -l 'https://yourhost/svn/your_working_copy' `find . -name entries|grep .svn` | sed 's/\.svn\/entries//' | xargs echo
如果你认为对,那么你可以rm -rf
之后