1706 error) |
1706 error) |
1707 return |
1707 return |
1708 name2 = "{0} (rev. {1})".format(name, rev2) |
1708 name2 = "{0} (rev. {1})".format(name, rev2) |
1709 else: |
1709 else: |
1710 try: |
1710 try: |
1711 f1 = open(name, "r", encoding="utf-8") |
1711 with open(name, "r", encoding="utf-8") as f1: |
1712 output2 = f1.read() |
1712 output2 = f1.read() |
1713 f1.close() |
|
1714 name2 = "{0} (Work)".format(name) |
1713 name2 = "{0} (Work)".format(name) |
1715 except IOError: |
1714 except IOError: |
1716 E5MessageBox.critical( |
1715 E5MessageBox.critical( |
1717 self.__ui, |
1716 self.__ui, |
1718 self.tr("Mercurial Side-by-Side Difference"), |
1717 self.tr("Mercurial Side-by-Side Difference"), |
2138 if withLargefiles: |
2137 if withLargefiles: |
2139 lfMinSize, lfPattern = dlg.getLargefilesData() |
2138 lfMinSize, lfPattern = dlg.getLargefilesData() |
2140 else: |
2139 else: |
2141 createContents = False |
2140 createContents = False |
2142 try: |
2141 try: |
2143 cfg = open(cfgFile, "w") |
2142 with open(cfgFile, "w") as cfg: |
2144 if createContents: |
2143 if createContents: |
2145 # write the data entered |
2144 # write the data entered |
2146 cfg.write("[paths]\n") |
2145 cfg.write("[paths]\n") |
2147 if defaultUrl: |
2146 if defaultUrl: |
2148 cfg.write("default = {0}\n".format(defaultUrl)) |
2147 cfg.write("default = {0}\n".format(defaultUrl)) |
2149 if defaultPushUrl: |
2148 if defaultPushUrl: |
2150 cfg.write("default-push = {0}\n".format( |
2149 cfg.write("default-push = {0}\n".format( |
2151 defaultPushUrl)) |
2150 defaultPushUrl)) |
2152 if ( |
2151 if ( |
2153 withLargefiles and |
2152 withLargefiles and |
2154 (lfMinSize, lfPattern) != (None, None) |
2153 (lfMinSize, lfPattern) != (None, None) |
2155 ): |
2154 ): |
2156 cfg.write("\n[largefiles]\n") |
2155 cfg.write("\n[largefiles]\n") |
2157 if lfMinSize is not None: |
2156 if lfMinSize is not None: |
2158 cfg.write("minsize = {0}\n".format(lfMinSize)) |
2157 cfg.write("minsize = {0}\n".format(lfMinSize)) |
2159 if lfPattern is not None: |
2158 if lfPattern is not None: |
2160 cfg.write("patterns =\n") |
2159 cfg.write("patterns =\n") |
2161 cfg.write(" {0}\n".format( |
2160 cfg.write(" {0}\n".format( |
2162 "\n ".join(lfPattern))) |
2161 "\n ".join(lfPattern))) |
2163 cfg.close() |
|
2164 self.__monitorRepoIniFile(repodir) |
2162 self.__monitorRepoIniFile(repodir) |
2165 self.__iniFileChanged(cfgFile) |
2163 self.__iniFileChanged(cfgFile) |
2166 except IOError: |
2164 except IOError: |
2167 pass |
2165 pass |
2168 self.repoEditor = MiniEditor(cfgFile, "Properties") |
2166 self.repoEditor = MiniEditor(cfgFile, "Properties") |
3060 contents = [] |
3057 contents = [] |
3061 if os.path.isfile(hgsub): |
3058 if os.path.isfile(hgsub): |
3062 # file exists; check, if such an entry exists already |
3059 # file exists; check, if such an entry exists already |
3063 needsAdd = False |
3060 needsAdd = False |
3064 try: |
3061 try: |
3065 f = open(hgsub, "r") |
3062 with open(hgsub, "r") as f: |
3066 contents = f.readlines() |
3063 contents = f.readlines() |
3067 f.close() |
|
3068 except IOError as err: |
3064 except IOError as err: |
3069 E5MessageBox.critical( |
3065 E5MessageBox.critical( |
3070 self.__ui, |
3066 self.__ui, |
3071 self.tr("Add Sub-repository"), |
3067 self.tr("Add Sub-repository"), |
3072 self.tr( |
3068 self.tr( |
3089 |
3085 |
3090 if contents and not contents[-1].endswith("\n"): |
3086 if contents and not contents[-1].endswith("\n"): |
3091 contents[-1] = contents[-1] + "\n" |
3087 contents[-1] = contents[-1] + "\n" |
3092 contents.append(entry) |
3088 contents.append(entry) |
3093 try: |
3089 try: |
3094 f = open(hgsub, "w") |
3090 with open(hgsub, "w") as f: |
3095 f.writelines(contents) |
3091 f.writelines(contents) |
3096 f.close() |
|
3097 except IOError as err: |
3092 except IOError as err: |
3098 E5MessageBox.critical( |
3093 E5MessageBox.critical( |
3099 self.__ui, |
3094 self.__ui, |
3100 self.tr("Add Sub-repository"), |
3095 self.tr("Add Sub-repository"), |
3101 self.tr( |
3096 self.tr( |
3122 self.tr("""<p>The sub-repositories file .hgsub does not""" |
3117 self.tr("""<p>The sub-repositories file .hgsub does not""" |
3123 """ exist. Aborting...</p>""")) |
3118 """ exist. Aborting...</p>""")) |
3124 return |
3119 return |
3125 |
3120 |
3126 try: |
3121 try: |
3127 f = open(hgsub, "r") |
3122 with open(hgsub, "r") as f: |
3128 subrepositories = [line.strip() for line in f.readlines()] |
3123 subrepositories = [line.strip() for line in f.readlines()] |
3129 f.close() |
|
3130 except IOError as err: |
3124 except IOError as err: |
3131 E5MessageBox.critical( |
3125 E5MessageBox.critical( |
3132 self.__ui, |
3126 self.__ui, |
3133 self.tr("Remove Sub-repositories"), |
3127 self.tr("Remove Sub-repositories"), |
3134 self.tr("""<p>The sub-repositories file .hgsub could not""" |
3128 self.tr("""<p>The sub-repositories file .hgsub could not""" |
3142 dlg = HgRemoveSubrepositoriesDialog(subrepositories) |
3136 dlg = HgRemoveSubrepositoriesDialog(subrepositories) |
3143 if dlg.exec() == QDialog.Accepted: |
3137 if dlg.exec() == QDialog.Accepted: |
3144 subrepositories, removedSubrepos, deleteSubrepos = dlg.getData() |
3138 subrepositories, removedSubrepos, deleteSubrepos = dlg.getData() |
3145 contents = "\n".join(subrepositories) + "\n" |
3139 contents = "\n".join(subrepositories) + "\n" |
3146 try: |
3140 try: |
3147 f = open(hgsub, "w") |
3141 with open(hgsub, "w") as f: |
3148 f.write(contents) |
3142 f.write(contents) |
3149 f.close() |
|
3150 except IOError as err: |
3143 except IOError as err: |
3151 E5MessageBox.critical( |
3144 E5MessageBox.critical( |
3152 self.__ui, |
3145 self.__ui, |
3153 self.tr("Remove Sub-repositories"), |
3146 self.tr("Remove Sub-repositories"), |
3154 self.tr( |
3147 self.tr( |