subversion中所有版本化文件的列表? (按名称删除文件)

时间:2010-09-03 08:28:35

标签: svn grep find

办公室的一些聪明的家伙设法将一大堆“备份”文件(以._开头)提交给我们的subversion服务器。

最好我想使用一些基本的bash脚本删除这些文件,而不是手动通过存储库。

有什么方法可以获取目录中所有subversion版本化文件的列表,这样我就可以做一些基本的grepping / svn删除了吗?

编辑:

'svn list'不是递归的,似乎也列出目录,我需要像'find'这样的行为。

第二次编辑:

好的,-R标志可以使'svn list'递归...但是如何删除目录?

3 个答案:

答案 0 :(得分:6)

svn list -R

以递归方式列出所有文件和目录

答案 1 :(得分:4)

如果它仅在一次提交(或一系列提交)中,则使用 svn merge 来撤消它。

如果用户已在多次提交中执行此操作并且您使用的是Linux:

首先检查这是否正确列出了您要删除的文件:

find . -name '._*'

然后实际调用svn删除它们:

find . -name '._*' -exec svn rm {} \;

检查svn状态,如果好的话,提交。

免责声明:我没有测试过这些命令,所以要小心。

我认为这些是自动生成的Mac备份文件。

答案 2 :(得分:3)

  

如何删除目录?

关键是观察目录将以斜杠结束。

然后你可以使用grep。

svn list -R my_svn_dir | grep -v '/$'