Plugins/VcsPlugins/vcsMercurial/hg.py

changeset 1263
1b6054a9b668
parent 1252
ef9b2f7f1dd5
child 1267
5eddb59304c7
equal deleted inserted replaced
1262:3a359afecc10 1263:1b6054a9b668
7 Module implementing the version control systems interface to Mercurial. 7 Module implementing the version control systems interface to Mercurial.
8 """ 8 """
9 9
10 import os 10 import os
11 import shutil 11 import shutil
12 import re
12 import urllib.request 13 import urllib.request
13 import urllib.parse 14 import urllib.parse
14 import urllib.error 15 import urllib.error
15 16
16 from PyQt4.QtCore import QProcess, pyqtSignal, QFileInfo, QFileSystemWatcher 17 from PyQt4.QtCore import QProcess, pyqtSignal, QFileInfo, QFileSystemWatcher
221 finished = process.waitForFinished(30000) 222 finished = process.waitForFinished(30000)
222 if finished and process.exitCode() == 0: 223 if finished and process.exitCode() == 0:
223 output = \ 224 output = \
224 str(process.readAllStandardOutput(), ioEncoding, 'replace') 225 str(process.readAllStandardOutput(), ioEncoding, 'replace')
225 self.versionStr = output.splitlines()[0].split()[-1][0:-1] 226 self.versionStr = output.splitlines()[0].split()[-1][0:-1]
227 v = list(re.match(r'.*?(\d+)\.(\d+)\.?(\d+)?(\+[0-9a-f-]+)?',
228 self.versionStr).groups())
229 for i in range(3):
230 try:
231 v[i] = int(v[i])
232 except TypeError:
233 v[i] = 0
234 except IndexError:
235 v.append(0)
236 self.version = tuple(v)
226 self.__getExtensionsInfo() 237 self.__getExtensionsInfo()
227 return True, errMsg 238 return True, errMsg
228 else: 239 else:
229 if finished: 240 if finished:
230 errMsg = \ 241 errMsg = \
2394 if output: 2405 if output:
2395 for line in output.splitlines(): 2406 for line in output.splitlines():
2396 extensionName = line.split("=", 1)[0].strip().split(".")[-1].strip() 2407 extensionName = line.split("=", 1)[0].strip().split(".")[-1].strip()
2397 self.__activeExtensions.append(extensionName) 2408 self.__activeExtensions.append(extensionName)
2398 2409
2399 if self.versionStr >= "1.8": 2410 if self.version >= (1, 8):
2400 if "bookmarks" not in self.__activeExtensions: 2411 if "bookmarks" not in self.__activeExtensions:
2401 self.__activeExtensions.append("bookmarks") 2412 self.__activeExtensions.append("bookmarks")
2402 2413
2403 if activeExtensions != sorted(self.__activeExtensions): 2414 if activeExtensions != sorted(self.__activeExtensions):
2404 self.activeExtensionsChanged.emit() 2415 self.activeExtensionsChanged.emit()
2446 """ 2457 """
2447 self.__projectHelper = self.__plugin.getProjectHelper() 2458 self.__projectHelper = self.__plugin.getProjectHelper()
2448 self.__projectHelper.setObjects(self, project) 2459 self.__projectHelper.setObjects(self, project)
2449 self.__monitorRepoIniFile(project.getProjectPath()) 2460 self.__monitorRepoIniFile(project.getProjectPath())
2450 2461
2451 if self.versionStr >= "1.9": 2462 if self.version >= (1, 9):
2452 client = HgClient(project.getProjectPath(), "utf-8", self) 2463 client = HgClient(project.getProjectPath(), "utf-8", self)
2453 ok, err = client.startServer() 2464 ok, err = client.startServer()
2454 if ok: 2465 if ok:
2455 self.__client = client 2466 self.__client = client
2456 else: 2467 else:

eric ide

mercurial