python 更新svn 并复制到其他目

  • 2020 年 1 月 13 日
  • 筆記

#!/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)