bdjhx 发表于 2018-8-5 13:41:53

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)
页: [1]
查看完整版本: python 更新svn 并复制到其他目录