前提條件是電腦上已經安裝好tortoisesvn.且經過測試可以從SVN服務器上上傳或下載更新文件。
需要注意的是:svn更新到本地的路徑或者export到本地的路徑如果是中文,utf-8的編碼傳給svn是會報錯的,是亂碼識別不了。 Windows下中文的編碼格式是gbk .所以要把中文字符串編碼為gbk。
svnconfig.py文件
# -*- coding: utf-8 -*- setting={ 'svn':r'D:\Program Files\TortoiseSVN\bin',#svn的程序所在路徑 'url':'https://svn.xxxxx.com/svn/nsip/test',#svn地址 'dist':u'D:\\VPN\\代碼\\數據倉庫存儲過程修改備份\\PKG_SRC',#目標地址 'closeOption': ' /closeonend:1' #'interval':15 #更新時間 } # /closeonend:0 不自動關閉對話框 # /closeonend:1 如果沒發生錯誤則自動關閉對話框 # /closeonend:2 如果沒發生錯誤和沖突則自動關閉對話框 # /closeonend:3如果沒有錯誤、沖突和合並,會自動關閉 # /closeonend:4如果沒有錯誤、沖突和合並,會自動關閉
svn_update.py
1 # -*- coding: utf-8 -*- 2 #SVN的目錄有中文 3 #svn的命令傳英文路徑沒有問題,中文路徑由於編碼問題會出現亂碼 4 #中文路徑是utf-8的編碼,傳給SVN會出現亂碼,識別不了 5 #windows的中文編碼是gbk. svn的中文路徑需要轉化為gbk的編碼才能識別 6 #cmd_gbk=cmd.encode("gbk") 7 8 import time 9 import os 10 import svnconfig 11 import sys 12 13 reload(sys) 14 sys.setdefaultencoding('utf8') 15 16 dist= svnconfig.setting['dist_test'] 17 print(dist) 18 #cmd = 'TortoiseProc.exe /command:update /path '+ dist + ' /notempfile' + svnconfig.setting['closeOption'] 19 cmd_utf8 = 'TortoiseProc.exe /command:update /path '+ dist 20 cmd_gbk=cmd_utf8.encode("gbk") #必須得轉成gbk,否則是亂碼,不能正常執行 21 22 print(cmd_utf8,type(cmd_utf8)) 23 print(cmd_gbk,type(cmd_gbk)) 24 #print(cmd) 25 result = os.system(cmd_gbk) 26 27 if result == 0: 28 print('svn update success') 29 else: 30 print('svn update fail')
中文路徑直接使用utf-8,沒有編碼成gbk之前的報錯:
中文路徑轉化為gbk之后: