關鍵字: Python SVN
隱士以前用慣了ClearCase,換到SVN有點不習慣。ClearCase下面的檔案都可以直接Copy出來用,SVN下面的就麻煩了,每個目錄下面一個.svn子目錄,當你要把項目在Check In前拿去別用時,你就體會到你的項目不是一個項目,此刻SVN靈魂附體令你感覺彆扭,當然,Check In後可以用SVN的Export來匯出一個乾淨的項目。不爽,隱士整了個Python指令碼,清除這些垃圾。
閑話不多,看指令碼:
#!/usr/bin/python
# -*- coding: utf8 -*-
#################################
# Written by caocao #
# http://www.caocao.mobi #
# http://www.caocao.name #
#################################
import sys, os, stat
def walk(path):
for item in os.listdir(path):
subpath=os.path.join(path, item)
mode=os.stat(subpath)[stat.ST_MODE]
if stat.S_ISDIR(mode):
if item==".svn":
print "Cleaning %s ..." % subpath
print "%d deleted" % purge(subpath)
else:
walk(subpath)
def purge(path):
count=0
for item in os.listdir(path):
subpath=os.path.join(path, item)
mode=os.stat(subpath)[stat.ST_MODE]
if stat.S_ISDIR(mode):
count+=purge(subpath)
else:
os.chmod(subpath, stat.S_IREAD|stat.S_IWRITE)
os.unlink(subpath)
count+=1
os.rmdir(path)
count+=1
return count
if len(sys.argv)!=2:
print "Usage: python SVNClean.py path"
sys.exit(1)
walk(sys.argv[1])