--- 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): """