python 更新svn 并复制到其他目
#!/usr/bin/env python # -*- coding:utf-8 -*- import pysvn import locale import datetime import os def setlocale(): language_code, encoding = locale.getdefaultlocale() if language_code is None: language_code = 'en_GB' if encoding is None: encoding = 'UTF-8' if encoding.lower == 'utf': encoding = 'UTF-8' locale.setlocale( locale.LC_ALL, '%s.%s' % (language_code, encoding)) def get_login( realm, username, may_save ): return True, 'test', 'test', True def svncheckout(): client = pysvn.Client() client.callback_get_login = get_login ret = client.checkout(url,path) def svnupdate(path): client = pysvn.Client() ret = client.update(path) #print ret return ret def svninfo(path): client = pysvn.Client() entry = client.info(path) Version = "Version: %s" % entry.commit_revision.number Author = "Author: %s" % entry.commit_author Update = "Update Date: %s" % str(datetime.datetime.fromtimestamp(entry.commit_time))[:-7] f = file('log.txt','a') f.write(Version+'n'+Author+'n'+Update+'n'+'-'*32+'n') f.close() def copyFiles(sourceDir, targetDir): if sourceDir.find(".svn") > 0: return for file in os.listdir(sourceDir): sourceFile = os.path.join(sourceDir, file) targetFile = os.path.join(targetDir, file) if os.path.isfile(sourceFile): if not os.path.exists(targetDir): os.makedirs(targetDir) if not os.path.exists(targetFile) or(os.path.exists(targetFile) and (os.path.getsize(targetFile) != os.path.getsize(sourceFile))): open(targetFile, "wb").write(open(sourceFile, "rb").read()) if os.path.isdir(sourceFile): First_Directory = False copyFiles(sourceFile, targetFile) if __name__ == "__main__": path = u"D:\dsa\测试" url = "http://192.168.5.110:808/svn/test/%E6%B5%8B%E8%AF%95" #setlocale() #svncheckout() svnupdate(path) svninfo(path) sourceDir = u"D:\dsa\测试" targetDir = u"D:\xshell\windows平台android模拟器" copyFiles(sourceDir,targetDir)