SVN 自动删除 “被手动删除” 的文件


  • 管理员

    删除SVN存储库工作副本中的文件时,应该在命令行上执行:

    svn rm [filename]
    

    但是,如果您不这样做(例如通过gui删除,或者只执行“rm”而不执行“svn”),那么svn就会感到困惑,并将一个“!”在所有被删除的文件之前的状态。

    如果您进行svn更新,所有的文件都将被恢复,显然您花费在删除它们上的所有时间都将被浪费了。

    你真的应该使用svn rm,但如果已经太晚了,你可以使用这个bash脚本来删除svn中的文件:

     #从svn中删除你已经删除的文件    
     svn status | grep "^\!" | sed 's/^\! *//g' | xargs svn rm
    

    这个命令执行一个status命令,查找所有以“!”开头的行。然后提取文件名,并运行它通过“ svn rm ” 真正删除文件。

    警告:确保您确实想删除所有这些文件!

    使用方法自负风险。代码足够简单,所以您应该能够了解它的功能。


Log in to reply