Sat, 03 Sep 2011 17:10:22 +0200
Fixed the treatment of the Subversion version number.
(transplanted from 4fc337f391c925cf643565adc4df1a1eec1654b3)
--- a/Plugins/VcsPlugins/vcsPySvn/SvnStatusDialog.py Fri Sep 02 08:21:31 2011 +0200 +++ b/Plugins/VcsPlugins/vcsPySvn/SvnStatusDialog.py Sat Sep 03 17:10:22 2011 +0200 @@ -85,7 +85,7 @@ self.menuactions.append(self.menu.addAction( self.trUtf8("Remove from Changelist"), self.__removeFromChangelist)) - if self.vcs.versionStr >= '1.2.0': + if self.vcs.version >= (1, 2, 0): self.menu.addSeparator() self.menuactions.append(self.menu.addAction(self.trUtf8("Lock"), self.__lock))
--- a/Plugins/VcsPlugins/vcsPySvn/subversion.py Fri Sep 02 08:21:31 2011 +0200 +++ b/Plugins/VcsPlugins/vcsPySvn/subversion.py Sat Sep 03 17:10:22 2011 +0200 @@ -187,6 +187,7 @@ @return flag indicating the existance (boolean) and an error message (string) """ self.versionStr = ".".join([str(v) for v in pysvn.svn_version[:-1]]) + self.version = pysvn.svn_version[:-1] return True, "" def vcsInit(self, vcsDir, noDialog = False):
--- a/Plugins/VcsPlugins/vcsSubversion/ProjectBrowserHelper.py Fri Sep 02 08:21:31 2011 +0200 +++ b/Plugins/VcsPlugins/vcsSubversion/ProjectBrowserHelper.py Sat Sep 03 17:10:22 2011 +0200 @@ -230,7 +230,7 @@ self.vcsMenuActions.append(act) act = menu.addAction(self.trUtf8('Move in repository'), self.__SVNMove) self.vcsMenuActions.append(act) - if self.vcs.versionStr >= '1.5.0': + if self.vcs.version >= (1, 5, 0): menu.addSeparator() act = menu.addAction(self.trUtf8("Add to Changelist"), self.__SVNAddToChangelist) @@ -277,7 +277,7 @@ self.vcsMenuActions.append(act) act = menu.addAction(self.trUtf8('Resolve conflict'), self.__SVNResolve) self.vcsMenuActions.append(act) - if self.vcs.versionStr >= '1.2.0': + if self.vcs.version >= (1, 2, 0): menu.addSeparator() act = menu.addAction(UI.PixmapCache.getIcon("vcsLock.png"), self.trUtf8('Lock'), self.__SVNLock) @@ -355,7 +355,7 @@ self.trUtf8('Remove from repository (and disk)'), self._VCSRemove) self.vcsMultiMenuActions.append(act) - if self.vcs.versionStr >= '1.5.0': + if self.vcs.version >= (1, 5, 0): menu.addSeparator() act = menu.addAction(self.trUtf8("Add to Changelist"), self.__SVNAddToChangelist) @@ -385,7 +385,7 @@ self.vcsMultiMenuActions.append(act) act = menu.addAction(self.trUtf8('Resolve conflict'), self.__SVNResolve) self.vcsMultiMenuActions.append(act) - if self.vcs.versionStr >= '1.2.0': + if self.vcs.version >= (1, 2, 0): menu.addSeparator() act = menu.addAction(UI.PixmapCache.getIcon("vcsLock.png"), self.trUtf8('Lock'), self.__SVNLock) @@ -497,7 +497,7 @@ self.vcsDirMenuActions.append(act) act = menu.addAction(self.trUtf8('Move in repository'), self.__SVNMove) self.vcsDirMenuActions.append(act) - if self.vcs.versionStr >= '1.5.0': + if self.vcs.version >= (1, 5, 0): menu.addSeparator() act = menu.addAction(self.trUtf8("Add to Changelist"), self.__SVNAddToChangelist) @@ -602,7 +602,7 @@ self.trUtf8('Remove from repository (and disk)'), self._VCSRemove) self.vcsDirMultiMenuActions.append(act) - if self.vcs.versionStr >= '1.5.0': + if self.vcs.version >= (1, 5, 0): menu.addSeparator() act = menu.addAction(self.trUtf8("Add to Changelist"), self.__SVNAddToChangelist)
--- a/Plugins/VcsPlugins/vcsSubversion/SvnCommitDialog.py Fri Sep 02 08:21:31 2011 +0200 +++ b/Plugins/VcsPlugins/vcsSubversion/SvnCommitDialog.py Sat Sep 03 17:10:22 2011 +0200 @@ -34,7 +34,7 @@ QWidget.__init__(self, parent, Qt.WindowFlags(Qt.Window)) self.setupUi(self) - if vcs.versionStr < '1.5.0': + if vcs.version < (1, 5, 0): self.changeListsGroup.hide() def showEvent(self, evt):
--- a/Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py Fri Sep 02 08:21:31 2011 +0200 +++ b/Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py Sat Sep 03 17:10:22 2011 +0200 @@ -62,7 +62,7 @@ self.statusList.headerItem().setText(self.__lastColumn, "") self.statusList.header().setSortIndicator(self.__pathColumn, Qt.AscendingOrder) - if self.vcs.versionStr < '1.5.0': + if self.vcs.version < (1, 5, 0): self.statusList.header().hideSection(self.__changelistColumn) self.menuactions = [] @@ -74,14 +74,14 @@ self.trUtf8("Add to repository"), self.__add)) self.menuactions.append(self.menu.addAction( self.trUtf8("Revert changes"), self.__revert)) - if self.vcs.versionStr >= '1.5.0': + if self.vcs.version >= (1, 5, 0): self.menu.addSeparator() self.menuactions.append(self.menu.addAction( self.trUtf8("Add to Changelist"), self.__addToChangelist)) self.menuactions.append(self.menu.addAction( self.trUtf8("Remove from Changelist"), self.__removeFromChangelist)) - if self.vcs.versionStr >= '1.2.0': + if self.vcs.version >= (1, 2, 0): self.menu.addSeparator() self.menuactions.append(self.menu.addAction(self.trUtf8("Lock"), self.__lock))
--- a/Plugins/VcsPlugins/vcsSubversion/SvnUrlSelectionDialog.py Fri Sep 02 08:21:31 2011 +0200 +++ b/Plugins/VcsPlugins/vcsSubversion/SvnUrlSelectionDialog.py Sat Sep 03 17:10:22 2011 +0200 @@ -35,7 +35,7 @@ QDialog.__init__(self, parent) self.setupUi(self) - if vcs.versionStr < "1.4.0": + if vcs.version < (1, 4, 0): self.summaryCheckBox.setEnabled(False) self.summaryCheckBox.setChecked(False)
--- a/Plugins/VcsPlugins/vcsSubversion/subversion.py Fri Sep 02 08:21:31 2011 +0200 +++ b/Plugins/VcsPlugins/vcsSubversion/subversion.py Sat Sep 03 17:10:22 2011 +0200 @@ -8,6 +8,7 @@ """ import os +import re import shutil import urllib.request, urllib.parse, urllib.error @@ -169,6 +170,15 @@ output = \ str(process.readAllStandardOutput(), ioEncoding, 'replace') self.versionStr = output.split()[2] + v = list(re.match(r'.*?(\d+)\.(\d+)\.?(\d+)?', self.versionStr).groups()) + for i in range(3): + try: + v[i] = int(v[i]) + except TypeError: + v[i] = 0 + except IndexError: + v.append(0) + self.version = tuple(v) return True, errMsg else: if finished: @@ -507,7 +517,7 @@ args.append('update') self.addArguments(args, self.options['global']) self.addArguments(args, self.options['update']) - if self.versionStr >= '1.5.0': + if self.version >= (1, 5, 0): args.append('--accept') args.append('postpone') if isinstance(name, list): @@ -949,7 +959,7 @@ args = [] args.append('switch') - if self.versionStr >= '1.5.0': + if self.version >= (1, 5, 0): args.append('--accept') args.append('postpone') args.append(url) @@ -994,7 +1004,7 @@ args = [] args.append('merge') self.addArguments(args, opts) - if self.versionStr >= '1.5.0': + if self.version >= (1, 5, 0): args.append('--accept') args.append('postpone') if force: @@ -1304,7 +1314,7 @@ @param name file/directory name to be resolved (string) """ args = [] - if self.versionStr >= '1.5.0': + if self.version >= (1, 5, 0): args.append('resolve') args.append('--accept') args.append('working')