Fixed issues in various Mercurial files that could cause infinite loops on Windows systems.

Thu, 15 Sep 2011 18:28:26 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 15 Sep 2011 18:28:26 +0200
changeset 1318
6fa303bd65d6
parent 1316
0bb67aced672
child 1319
7139c5ed5139

Fixed issues in various Mercurial files that could cause infinite loops on Windows systems.

Plugins/VcsPlugins/vcsMercurial/BookmarksExtension/HgBookmarksInOutDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/BookmarksExtension/HgBookmarksListDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/BookmarksExtension/bookmarks.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/FetchExtension/fetch.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/GpgExtension/HgGpgSignaturesDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/GpgExtension/gpg.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/HgAnnotateDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/HgTagBranchListDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/PurgeExtension/purge.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesDefineGuardsDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesHeaderDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListAllGuardsDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListGuardsDialog.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/QueuesExtension/queues.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/RebaseExtension/rebase.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/TransplantExtension/transplant.py file | annotate | diff | comparison | revisions
Plugins/VcsPlugins/vcsMercurial/hg.py file | annotate | diff | comparison | revisions
VCS/ProjectHelper.py file | annotate | diff | comparison | revisions
--- a/Plugins/VcsPlugins/vcsMercurial/BookmarksExtension/HgBookmarksInOutDialog.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/BookmarksExtension/HgBookmarksInOutDialog.py	Thu Sep 15 18:28:26 2011 +0200
@@ -99,7 +99,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
--- a/Plugins/VcsPlugins/vcsMercurial/BookmarksExtension/HgBookmarksListDialog.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/BookmarksExtension/HgBookmarksListDialog.py	Thu Sep 15 18:28:26 2011 +0200
@@ -90,7 +90,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
--- a/Plugins/VcsPlugins/vcsMercurial/BookmarksExtension/bookmarks.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/BookmarksExtension/bookmarks.py	Thu Sep 15 18:28:26 2011 +0200
@@ -109,7 +109,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         dlg = HgBookmarkDialog(HgBookmarkDialog.DEFINE_MODE,
@@ -141,7 +141,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         bookmark, ok = QInputDialog.getItem(
@@ -171,7 +171,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         dlg = HgBookmarkRenameDialog(self.hgGetBookmarksList(repodir))
@@ -199,7 +199,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         dlg = HgBookmarkDialog(HgBookmarkDialog.MOVE_MODE,
@@ -296,7 +296,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         bookmarks = self.__getInOutBookmarks(repodir, True)
@@ -329,7 +329,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         bookmarks = self.__getInOutBookmarks(repodir, False)
--- a/Plugins/VcsPlugins/vcsMercurial/FetchExtension/fetch.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/FetchExtension/fetch.py	Thu Sep 15 18:28:26 2011 +0200
@@ -40,7 +40,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return False
         
         res = False
--- a/Plugins/VcsPlugins/vcsMercurial/GpgExtension/HgGpgSignaturesDialog.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/GpgExtension/HgGpgSignaturesDialog.py	Thu Sep 15 18:28:26 2011 +0200
@@ -87,7 +87,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
--- a/Plugins/VcsPlugins/vcsMercurial/GpgExtension/gpg.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/GpgExtension/gpg.py	Thu Sep 15 18:28:26 2011 +0200
@@ -62,7 +62,7 @@
         repodir = self.vcs.splitPath(path)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         if rev is None:
@@ -99,7 +99,7 @@
         repodir = self.vcs.splitPath(path)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         if self.vcs.isExtensionActive("bookmarks"):
--- a/Plugins/VcsPlugins/vcsMercurial/HgAnnotateDialog.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/HgAnnotateDialog.py	Thu Sep 15 18:28:26 2011 +0200
@@ -97,7 +97,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
--- a/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py	Thu Sep 15 18:28:26 2011 +0200
@@ -169,7 +169,7 @@
             repodir = dname
             while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
                 repodir = os.path.dirname(repodir)
-                if repodir == os.sep:
+                if os.path.splitdrive(repodir)[1] == os.sep:
                     return
             
             self.process.kill()
--- a/Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py	Thu Sep 15 18:28:26 2011 +0200
@@ -701,7 +701,7 @@
         self.repodir = self.dname
         while not os.path.isdir(os.path.join(self.repodir, self.vcs.adminDir)):
             self.repodir = os.path.dirname(self.repodir)
-            if self.repodir == os.sep:
+            if self.os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         self.projectMode = (self.fname == "." and self.dname == self.repodir)
--- a/Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py	Thu Sep 15 18:28:26 2011 +0200
@@ -111,7 +111,7 @@
         self.repodir = self.dname
         while not os.path.isdir(os.path.join(self.repodir, self.vcs.adminDir)):
             self.repodir = os.path.dirname(self.repodir)
-            if self.repodir == os.sep:
+            if self.os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         self.projectMode = (self.fname == "." and self.dname == self.repodir)
--- a/Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py	Thu Sep 15 18:28:26 2011 +0200
@@ -210,7 +210,7 @@
         repodir = self.dname
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         if self.__hgClient:
--- a/Plugins/VcsPlugins/vcsMercurial/HgTagBranchListDialog.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/HgTagBranchListDialog.py	Thu Sep 15 18:28:26 2011 +0200
@@ -98,7 +98,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
--- a/Plugins/VcsPlugins/vcsMercurial/PurgeExtension/purge.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/PurgeExtension/purge.py	Thu Sep 15 18:28:26 2011 +0200
@@ -90,7 +90,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return False
         
         if all:
@@ -126,7 +126,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return False
         
         entries = self.__getEntries(repodir, all)
--- a/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesDefineGuardsDialog.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesDefineGuardsDialog.py	Thu Sep 15 18:28:26 2011 +0200
@@ -97,7 +97,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         self.__repodir = repodir
--- a/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesHeaderDialog.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesHeaderDialog.py	Thu Sep 15 18:28:26 2011 +0200
@@ -79,7 +79,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
--- a/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListAllGuardsDialog.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListAllGuardsDialog.py	Thu Sep 15 18:28:26 2011 +0200
@@ -49,7 +49,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
--- a/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListDialog.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListDialog.py	Thu Sep 15 18:28:26 2011 +0200
@@ -92,7 +92,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         self.__repodir = repodir
--- a/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListGuardsDialog.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListGuardsDialog.py	Thu Sep 15 18:28:26 2011 +0200
@@ -72,7 +72,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         self.__repodir = repodir
--- a/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/queues.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/queues.py	Thu Sep 15 18:28:26 2011 +0200
@@ -246,7 +246,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         dlg = HgQueuesNewPatchDialog(HgQueuesNewPatchDialog.NEW_MODE)
@@ -291,7 +291,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
@@ -367,7 +367,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return False
         
         args = []
@@ -437,7 +437,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
@@ -460,7 +460,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
@@ -491,7 +491,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
@@ -526,7 +526,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
@@ -566,7 +566,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         patchnames = sorted(
@@ -600,7 +600,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         patchnames = sorted(
@@ -625,7 +625,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         patchnames = sorted(
@@ -670,7 +670,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         guardsList = self.getGuardsList(repodir)
@@ -705,7 +705,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
@@ -727,7 +727,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         guardsList = self.getGuardsList(repodir, all=False)
@@ -746,7 +746,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         if isCreate:
@@ -812,7 +812,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         if operation == Queues.QUEUE_PURGE:
@@ -881,7 +881,7 @@
         repodir = self.vcs.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         self.queuesListQueuesDialog = HgQueuesQueueManagementDialog(
--- a/Plugins/VcsPlugins/vcsMercurial/RebaseExtension/rebase.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/RebaseExtension/rebase.py	Thu Sep 15 18:28:26 2011 +0200
@@ -40,7 +40,7 @@
         repodir = self.vcs.splitPath(path)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return False
         
         res = False
@@ -96,7 +96,7 @@
         repodir = self.vcs.splitPath(path)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return False
         
         args = []
@@ -123,7 +123,7 @@
         repodir = self.vcs.splitPath(path)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return False
         
         args = []
--- a/Plugins/VcsPlugins/vcsMercurial/TransplantExtension/transplant.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/TransplantExtension/transplant.py	Thu Sep 15 18:28:26 2011 +0200
@@ -40,7 +40,7 @@
         repodir = self.vcs.splitPath(path)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return False
         
         res = False
@@ -88,7 +88,7 @@
         repodir = self.vcs.splitPath(path)[0]
         while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
--- a/Plugins/VcsPlugins/vcsMercurial/hg.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/hg.py	Thu Sep 15 18:28:26 2011 +0200
@@ -301,7 +301,7 @@
         args.append('init')
         args.append(projectDir)
         # init is not possible with the command server
-        dia = HgDialog(self.trUtf8('Creating Mercurial repository'))
+        dia = HgDialog(self.trUtf8('Creating Mercurial repository'), self)
         res = dia.startProcess(args)
         if res:
             dia.exec_()
@@ -447,7 +447,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         if self.__client:
@@ -507,7 +507,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return False
         
         if noDialog:
@@ -555,7 +555,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         if isinstance(name, list):
@@ -623,7 +623,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return False
         
         if noDialog:
@@ -686,7 +686,7 @@
             repodir = dname
             while not os.path.isdir(os.path.join(repodir, self.adminDir)):
                 repodir = os.path.dirname(repodir)
-                if repodir == os.sep:
+                if os.path.splitdrive(repodir)[1] == os.sep:
                     return False
             
             if noDialog:
@@ -728,7 +728,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         if self.isExtensionActive("bookmarks"):
@@ -803,7 +803,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         dlg = HgTagDialog(self.hgGetTagsList(repodir))
@@ -856,7 +856,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return False
         
         dia = HgDialog(self.trUtf8('Reverting changes'), self)
@@ -879,7 +879,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         opts = self.options['global'][:]
@@ -929,7 +929,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return False
         
         if self.isExtensionActive("bookmarks"):
@@ -968,7 +968,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return 0
         
         args = []
@@ -1037,7 +1037,7 @@
             repodir = dname
             while not os.path.isdir(os.path.join(repodir, self.adminDir)):
                 repodir = os.path.dirname(repodir)
-                if repodir == os.sep:
+                if os.path.splitdrive(repodir)[1] == os.sep:
                     return names
         
             args = []
@@ -1145,7 +1145,7 @@
             repodir = name
             while not os.path.isdir(os.path.join(repodir, self.adminDir)):
                 repodir = os.path.dirname(repodir)
-                if repodir == os.sep:
+                if os.path.splitdrive(repodir)[1] == os.sep:
                     return
             
             dia = HgDialog(self.trUtf8('Mercurial command'), self)
@@ -1335,7 +1335,7 @@
             repodir = dname
             while not os.path.isdir(os.path.join(repodir, self.adminDir)):
                 repodir = os.path.dirname(repodir)
-                if repodir == os.sep:
+                if os.path.splitdrive(repodir)[1] == os.sep:
                     return False
             
             dia = HgDialog(self.trUtf8('Copying {0}')
@@ -1508,7 +1508,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         if self.isExtensionActive("bookmarks"):
@@ -1598,7 +1598,7 @@
         repodir = self.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return False
         
         dia = HgDialog(title, self)
@@ -1633,7 +1633,7 @@
         repodir = self.splitPath(name)[0]
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         dia = HgDialog(self.trUtf8('Pushing to a remote Mercurial repository'), self)
@@ -1667,7 +1667,7 @@
             repodir = self.splitPath(ppath)[0]
             while not os.path.isdir(os.path.join(repodir, self.adminDir)):
                 repodir = os.path.dirname(repodir)
-                if repodir == os.sep:
+                if os.path.splitdrive(repodir)[1] == os.sep:
                     return
             
             process = QProcess()
@@ -1752,7 +1752,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return False
         
         dia = HgDialog(self.trUtf8('Resolving files/directories'), self)
@@ -1773,7 +1773,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         name, ok = QInputDialog.getItem(
@@ -1805,7 +1805,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
@@ -1836,7 +1836,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         cfgFile = os.path.join(repodir, self.adminDir, "hgrc")
@@ -1862,7 +1862,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
@@ -1886,7 +1886,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
@@ -1910,7 +1910,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
@@ -1933,7 +1933,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
@@ -1956,7 +1956,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         args = []
@@ -2030,7 +2030,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         if self.isExtensionActive("bookmarks"):
@@ -2104,7 +2104,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         file = E5FileDialog.getOpenFileName(
@@ -2135,7 +2135,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         file = E5FileDialog.getOpenFileName(
@@ -2167,7 +2167,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         res = False
@@ -2215,7 +2215,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         rev = ""
@@ -2269,7 +2269,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         dia = HgDialog(
@@ -2294,7 +2294,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         if self.isExtensionActive("bookmarks"):
@@ -2345,7 +2345,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         res = E5MessageBox.yesNo(None,
@@ -2370,7 +2370,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         self.serveDlg = HgServeDialog(self, repodir)
@@ -2390,7 +2390,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         dlg = HgImportDialog()
@@ -2443,7 +2443,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if repodir == os.sep:
+            if os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         dlg = HgExportDialog()
@@ -2506,7 +2506,7 @@
         repodir = dname
         while not os.path.isdir(os.path.join(repodir, self.adminDir)):
             repodir = os.path.dirname(repodir)
-            if not repodir or repodir == os.sep:
+            if not repodir or os.path.splitdrive(repodir)[1] == os.sep:
                 return
         
         cfgFile = os.path.join(repodir, self.adminDir, "hgrc")
@@ -2595,15 +2595,23 @@
         self.__monitorRepoIniFile(project.getProjectPath())
         
         if self.version >= (1, 9):
-            client = HgClient(project.getProjectPath(), "utf-8", self)
-            ok, err = client.startServer()
-            if ok:
-                self.__client = client
-            else:
-                E5MessageBox.warning(None,
-                    self.trUtf8("Mercurial Command Server"),
-                    self.trUtf8("""<p>The Mercurial Command Server could not be"""
-                                """ started.</p><p>Reason: {0}</p>""").format(err))
+            # find the root of the repo
+            repodir = project.getProjectPath()
+            while not os.path.isdir(os.path.join(repodir, self.adminDir)):
+                repodir = os.path.dirname(repodir)
+                if not repodir or os.path.splitdrive(repodir)[1] == os.sep:
+                    repodir = ""
+                    break
+            if repodir:
+                client = HgClient(repodir, "utf-8", self)
+                ok, err = client.startServer()
+                if ok:
+                    self.__client = client
+                else:
+                    E5MessageBox.warning(None,
+                        self.trUtf8("Mercurial Command Server"),
+                        self.trUtf8("""<p>The Mercurial Command Server could not be"""
+                                    """ started.</p><p>Reason: {0}</p>""").format(err))
         
         return self.__projectHelper
 
--- a/VCS/ProjectHelper.py	Wed Sep 14 19:46:36 2011 +0200
+++ b/VCS/ProjectHelper.py	Thu Sep 15 18:28:26 2011 +0200
@@ -332,7 +332,7 @@
                 self.project.vcs.vcsSetDataFromDict(vcsDataDict)
                 self.project.saveProject()
                 isVcsControlled = \
-                    self.project.vcs.vcsImport(vcsDataDict, self.project.ppath)[1]
+                    self.project.vcs.vcsImport(vcsDataDict, self.project.ppath)[0]
                 if isVcsControlled:
                     # reopen the project
                     self.project.openProject(self.project.pfile)

eric ide

mercurial