Plugins/VcsPlugins/vcsSubversion/subversion.py

branch
5_1_x
changeset 1271
1e22e0168561
parent 791
9ec2ac20e54e
child 1510
e75ecf2bd9dd
equal deleted inserted replaced
1270:e1a56c0c0b60 1271:1e22e0168561
6 """ 6 """
7 Module implementing the version control systems interface to Subversion. 7 Module implementing the version control systems interface to Subversion.
8 """ 8 """
9 9
10 import os 10 import os
11 import re
11 import shutil 12 import shutil
12 import urllib.request, urllib.parse, urllib.error 13 import urllib.request, urllib.parse, urllib.error
13 14
14 from PyQt4.QtCore import * 15 from PyQt4.QtCore import *
15 from PyQt4.QtGui import * 16 from PyQt4.QtGui import *
167 finished = process.waitForFinished(30000) 168 finished = process.waitForFinished(30000)
168 if finished and process.exitCode() == 0: 169 if finished and process.exitCode() == 0:
169 output = \ 170 output = \
170 str(process.readAllStandardOutput(), ioEncoding, 'replace') 171 str(process.readAllStandardOutput(), ioEncoding, 'replace')
171 self.versionStr = output.split()[2] 172 self.versionStr = output.split()[2]
173 v = list(re.match(r'.*?(\d+)\.(\d+)\.?(\d+)?', self.versionStr).groups())
174 for i in range(3):
175 try:
176 v[i] = int(v[i])
177 except TypeError:
178 v[i] = 0
179 except IndexError:
180 v.append(0)
181 self.version = tuple(v)
172 return True, errMsg 182 return True, errMsg
173 else: 183 else:
174 if finished: 184 if finished:
175 errMsg = \ 185 errMsg = \
176 self.trUtf8("The svn process finished with the exit code {0}")\ 186 self.trUtf8("The svn process finished with the exit code {0}")\
505 """ 515 """
506 args = [] 516 args = []
507 args.append('update') 517 args.append('update')
508 self.addArguments(args, self.options['global']) 518 self.addArguments(args, self.options['global'])
509 self.addArguments(args, self.options['update']) 519 self.addArguments(args, self.options['update'])
510 if self.versionStr >= '1.5.0': 520 if self.version >= (1, 5, 0):
511 args.append('--accept') 521 args.append('--accept')
512 args.append('postpone') 522 args.append('postpone')
513 if isinstance(name, list): 523 if isinstance(name, list):
514 dname, fnames = self.splitPathList(name) 524 dname, fnames = self.splitPathList(name)
515 self.addArguments(args, fnames) 525 self.addArguments(args, fnames)
947 url = self.__svnURL(tag) 957 url = self.__svnURL(tag)
948 tn = url 958 tn = url
949 959
950 args = [] 960 args = []
951 args.append('switch') 961 args.append('switch')
952 if self.versionStr >= '1.5.0': 962 if self.version >= (1, 5, 0):
953 args.append('--accept') 963 args.append('--accept')
954 args.append('postpone') 964 args.append('postpone')
955 args.append(url) 965 args.append(url)
956 args.append(name) 966 args.append(name)
957 967
992 rx_rev = QRegExp('\\d+|HEAD') 1002 rx_rev = QRegExp('\\d+|HEAD')
993 1003
994 args = [] 1004 args = []
995 args.append('merge') 1005 args.append('merge')
996 self.addArguments(args, opts) 1006 self.addArguments(args, opts)
997 if self.versionStr >= '1.5.0': 1007 if self.version >= (1, 5, 0):
998 args.append('--accept') 1008 args.append('--accept')
999 args.append('postpone') 1009 args.append('postpone')
1000 if force: 1010 if force:
1001 args.append('--force') 1011 args.append('--force')
1002 if rx_rev.exactMatch(urlrev1): 1012 if rx_rev.exactMatch(urlrev1):
1302 Public method used to resolve conflicts of a file/directory. 1312 Public method used to resolve conflicts of a file/directory.
1303 1313
1304 @param name file/directory name to be resolved (string) 1314 @param name file/directory name to be resolved (string)
1305 """ 1315 """
1306 args = [] 1316 args = []
1307 if self.versionStr >= '1.5.0': 1317 if self.version >= (1, 5, 0):
1308 args.append('resolve') 1318 args.append('resolve')
1309 args.append('--accept') 1319 args.append('--accept')
1310 args.append('working') 1320 args.append('working')
1311 else: 1321 else:
1312 args.append('resolved') 1322 args.append('resolved')

eric ide

mercurial