20 from PyQt5.QtCore import QProcess, pyqtSignal, QFileInfo |
20 from PyQt5.QtCore import QProcess, pyqtSignal, QFileInfo |
21 from PyQt5.QtWidgets import QApplication, QDialog, QInputDialog, QLineEdit |
21 from PyQt5.QtWidgets import QApplication, QDialog, QInputDialog, QLineEdit |
22 |
22 |
23 from E5Gui.E5Application import e5App |
23 from E5Gui.E5Application import e5App |
24 from E5Gui import E5MessageBox, E5FileDialog |
24 from E5Gui import E5MessageBox, E5FileDialog |
25 |
|
26 from Globals.E5ConfigParser import E5ConfigParser |
|
27 |
25 |
28 from QScintilla.MiniEditor import MiniEditor |
26 from QScintilla.MiniEditor import MiniEditor |
29 |
27 |
30 from VCS.VersionControl import VersionControl |
28 from VCS.VersionControl import VersionControl |
31 from VCS.RepositoryInfoDialog import VcsRepositoryInfoDialog |
29 from VCS.RepositoryInfoDialog import VcsRepositoryInfoDialog |
3772 """ |
3770 """ |
3773 submodulesFile = os.path.join(repodir, ".gitmodules") |
3771 submodulesFile = os.path.join(repodir, ".gitmodules") |
3774 if not os.path.exists(submodulesFile): |
3772 if not os.path.exists(submodulesFile): |
3775 return [] |
3773 return [] |
3776 |
3774 |
3777 configParser = E5ConfigParser() |
3775 try: |
3778 if configParser.read(submodulesFile): |
3776 modulesFile = open(submodulesFile, "r") |
3779 submodules = [] |
3777 contents = modulesFile.readlines() |
3780 for submodule in configParser: |
3778 modulesFile.close() |
3781 if submodule.startswith("submodule"): |
3779 except OSError: |
3782 submoduleDict = {"name": submodule.split(None, 1)[1][1:-1]} |
3780 # silently ignore them |
3783 section = configParser[submodule] |
3781 return [] |
3784 submoduleDict["path"] = section["path"] |
3782 |
3785 submoduleDict["url"] = section["url"] |
3783 submodules = [] |
3786 if "branch" in section: |
3784 submoduleDict = None |
3787 submoduleDict["branch"] = section["branch"] |
3785 for line in contents: |
3788 else: |
3786 line = line.strip() |
|
3787 if line.startswith("[submodule"): |
|
3788 if submoduleDict: |
|
3789 if "branch" not in submoduleDict: |
3789 submoduleDict["branch"] = "" |
3790 submoduleDict["branch"] = "" |
3790 submodules.append(submoduleDict) |
3791 submodules.append(submoduleDict) |
3791 return submodules |
3792 submoduleDict = {"name": line.split(None, 1)[1][1:-2]} |
3792 |
3793 elif "=" in line: |
3793 return [] |
3794 option, value = line.split("=", 1) |
|
3795 submoduleDict[option.strip()] = value.strip() |
|
3796 if submoduleDict: |
|
3797 if "branch" not in submoduleDict: |
|
3798 submoduleDict["branch"] = "" |
|
3799 submodules.append(submoduleDict) |
|
3800 |
|
3801 return submodules |
3794 |
3802 |
3795 def gitSubmoduleList(self, projectDir): |
3803 def gitSubmoduleList(self, projectDir): |
3796 """ |
3804 """ |
3797 Public method to show a list of all submodules of the project. |
3805 Public method to show a list of all submodules of the project. |
3798 |
3806 |