python 更新svn 并复制到其他目

发布时间:2019-08-26 07:19:43编辑:auto阅读(1620)

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


关键字