Plugins/VcsPlugins/vcsMercurial/hg.py

changeset 1318
6fa303bd65d6
parent 1315
faafd2aa48d5
child 1378
f18a99689f2a
--- 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
 

eric ide

mercurial