SVN小文件清除脚本

隐士以前用惯了ClearCase,换到SVN有点不习惯。ClearCase下面的文件都可以直接Copy出来用,SVN下面的就麻烦了,每个目录下面一个.svn子目录,当你要把项目在Check In前拿去别用时,你就体会到你的项目不是一个项目,此刻SVN灵魂附体令你感觉别扭,当然,Check In后可以用SVN的Export来导出一个干净的项目。不爽,隐士整了个Python脚本,清除这些垃圾。

闲话不多,看脚本:

python 代码
  1. #!/usr/bin/python   
  2. # -*- coding: utf8 -*-   
  3.   
  4. #################################   
  5. #   Written by caocao           #   
  6. #   http://www.caocao.mobi      #   
  7. #   http://www.caocao.name      #   
  8. #################################   
  9.   
  10. import sysosstat  
  11.   
  12. def walk(path):   
  13.     for item in os.listdir(path):   
  14.         subpath=os.path.join(path, item)   
  15.         mode=os.stat(subpath)[stat.ST_MODE]   
  16.         if stat.S_ISDIR(mode):   
  17.             if item==".svn":   
  18.                 print "Cleaning %s ..." % subpath   
  19.                 print "%d deleted" % purge(subpath)   
  20.             else:   
  21.                 walk(subpath)   
  22.   
  23. def purge(path):   
  24.     count=0   
  25.     for item in os.listdir(path):   
  26.         subpath=os.path.join(path, item)   
  27.         mode=os.stat(subpath)[stat.ST_MODE]   
  28.         if stat.S_ISDIR(mode):   
  29.             count+=purge(subpath)   
  30.         else:   
  31.             os.chmod(subpath, stat.S_IREAD|stat.S_IWRITE)   
  32.             os.unlink(subpath)   
  33.             count+=1   
  34.     os.rmdir(path)   
  35.     count+=1   
  36.     return count  
  37.   
  38. if len(sys.argv)!=2:   
  39.     print "Usage: python SVNClean.py path"   
  40.     sys.exit(1)   
  41.   
  42. walk(sys.argv[1])  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值