Plugins/VcsPlugins/vcsGit/git.py

changeset 6078
bbdc284c1bfc
parent 6048
82ad8ec9548c
child 6303
ec9ebaf206fb
--- a/Plugins/VcsPlugins/vcsGit/git.py	Sun Jan 21 15:14:36 2018 +0100
+++ b/Plugins/VcsPlugins/vcsGit/git.py	Sun Jan 21 16:55:14 2018 +0100
@@ -23,8 +23,6 @@
 from E5Gui.E5Application import e5App
 from E5Gui import E5MessageBox, E5FileDialog
 
-from Globals.E5ConfigParser import E5ConfigParser
-
 from QScintilla.MiniEditor import MiniEditor
 
 from VCS.VersionControl import VersionControl
@@ -3774,23 +3772,33 @@
         if not os.path.exists(submodulesFile):
             return []
         
-        configParser = E5ConfigParser()
-        if configParser.read(submodulesFile):
-            submodules = []
-            for submodule in configParser:
-                if submodule.startswith("submodule"):
-                    submoduleDict = {"name": submodule.split(None, 1)[1][1:-1]}
-                    section = configParser[submodule]
-                    submoduleDict["path"] = section["path"]
-                    submoduleDict["url"] = section["url"]
-                    if "branch" in section:
-                        submoduleDict["branch"] = section["branch"]
-                    else:
+        try:
+            modulesFile = open(submodulesFile, "r")
+            contents = modulesFile.readlines()
+            modulesFile.close()
+        except OSError:
+            # silently ignore them
+            return []
+        
+        submodules = []
+        submoduleDict = None
+        for line in contents:
+            line = line.strip()
+            if line.startswith("[submodule"):
+                if submoduleDict:
+                    if "branch" not in submoduleDict:
                         submoduleDict["branch"] = ""
                     submodules.append(submoduleDict)
-            return submodules
-        
-        return []
+                submoduleDict = {"name": line.split(None, 1)[1][1:-2]}
+            elif "=" in line:
+                option, value = line.split("=", 1)
+                submoduleDict[option.strip()] = value.strip()
+        if submoduleDict:
+            if "branch" not in submoduleDict:
+                submoduleDict["branch"] = ""
+            submodules.append(submoduleDict)
+        
+        return submodules
     
     def gitSubmoduleList(self, projectDir):
         """

eric ide

mercurial