258 @param vcsDataDict dictionary of data required for the conversion |
258 @param vcsDataDict dictionary of data required for the conversion |
259 @param project reference to the project object |
259 @param project reference to the project object |
260 """ |
260 """ |
261 success = self.vcsImport(vcsDataDict, project.ppath)[0] |
261 success = self.vcsImport(vcsDataDict, project.ppath)[0] |
262 if not success: |
262 if not success: |
263 E5MessageBox.critical(self.__ui, |
263 E5MessageBox.critical( |
|
264 self.__ui, |
264 self.trUtf8("Create project repository"), |
265 self.trUtf8("Create project repository"), |
265 self.trUtf8( |
266 self.trUtf8( |
266 """The project repository could not be created.""")) |
267 """The project repository could not be created.""")) |
267 else: |
268 else: |
268 pfn = project.pfile |
269 pfn = project.pfile |
448 ok &= editor.checkDirty() |
449 ok &= editor.checkDirty() |
449 if not ok: |
450 if not ok: |
450 break |
451 break |
451 |
452 |
452 if not ok: |
453 if not ok: |
453 res = E5MessageBox.yesNo(self.__ui, |
454 res = E5MessageBox.yesNo( |
|
455 self.__ui, |
454 self.trUtf8("Commit Changes"), |
456 self.trUtf8("Commit Changes"), |
455 self.trUtf8( |
457 self.trUtf8( |
456 """The commit affects files, that have unsaved""" |
458 """The commit affects files, that have unsaved""" |
457 """ changes. Shall the commit be continued?"""), |
459 """ changes. Shall the commit be continued?"""), |
458 icon=E5MessageBox.Warning) |
460 icon=E5MessageBox.Warning) |
961 "Do you really want to revert all changes to these files" |
963 "Do you really want to revert all changes to these files" |
962 " or directories?"), |
964 " or directories?"), |
963 names) |
965 names) |
964 yes = dlg.exec_() == QDialog.Accepted |
966 yes = dlg.exec_() == QDialog.Accepted |
965 else: |
967 else: |
966 yes = E5MessageBox.yesNo(None, |
968 yes = E5MessageBox.yesNo( |
|
969 None, |
967 self.trUtf8("Revert changes"), |
970 self.trUtf8("Revert changes"), |
968 self.trUtf8("""Do you really want to revert all changes of""" |
971 self.trUtf8("""Do you really want to revert all changes of""" |
969 """ the project?""")) |
972 """ the project?""")) |
970 if yes: |
973 if yes: |
971 dia = HgDialog(self.trUtf8('Reverting changes'), self) |
974 dia = HgDialog(self.trUtf8('Reverting changes'), self) |
1769 else: |
1772 else: |
1770 rev1, rev2 = "", "" |
1773 rev1, rev2 = "", "" |
1771 |
1774 |
1772 output1, error = self.__hgGetFileForRevision(name, rev=rev1) |
1775 output1, error = self.__hgGetFileForRevision(name, rev=rev1) |
1773 if error: |
1776 if error: |
1774 E5MessageBox.critical(self.__ui, |
1777 E5MessageBox.critical( |
|
1778 self.__ui, |
1775 self.trUtf8("Mercurial Side-by-Side Difference"), |
1779 self.trUtf8("Mercurial Side-by-Side Difference"), |
1776 error) |
1780 error) |
1777 return |
1781 return |
1778 name1 = "{0} (rev. {1})".format(name, rev1 and rev1 or ".") |
1782 name1 = "{0} (rev. {1})".format(name, rev1 and rev1 or ".") |
1779 |
1783 |
1780 if rev2: |
1784 if rev2: |
1781 output2, error = self.__hgGetFileForRevision(name, rev=rev2) |
1785 output2, error = self.__hgGetFileForRevision(name, rev=rev2) |
1782 if error: |
1786 if error: |
1783 E5MessageBox.critical(self.__ui, |
1787 E5MessageBox.critical( |
|
1788 self.__ui, |
1784 self.trUtf8("Mercurial Side-by-Side Difference"), |
1789 self.trUtf8("Mercurial Side-by-Side Difference"), |
1785 error) |
1790 error) |
1786 return |
1791 return |
1787 name2 = "{0} (rev. {1})".format(name, rev2) |
1792 name2 = "{0} (rev. {1})".format(name, rev2) |
1788 else: |
1793 else: |
1790 f1 = open(name, "r", encoding="utf-8") |
1795 f1 = open(name, "r", encoding="utf-8") |
1791 output2 = f1.read() |
1796 output2 = f1.read() |
1792 f1.close() |
1797 f1.close() |
1793 name2 = name |
1798 name2 = name |
1794 except IOError: |
1799 except IOError: |
1795 E5MessageBox.critical(self.__ui, |
1800 E5MessageBox.critical( |
|
1801 self.__ui, |
1796 self.trUtf8("Mercurial Side-by-Side Difference"), |
1802 self.trUtf8("Mercurial Side-by-Side Difference"), |
1797 self.trUtf8( |
1803 self.trUtf8( |
1798 """<p>The file <b>{0}</b> could not be read.</p>""") |
1804 """<p>The file <b>{0}</b> could not be read.</p>""") |
1799 .format(name)) |
1805 .format(name)) |
1800 return |
1806 return |
2303 "glob:**.DS_Store", |
2309 "glob:**.DS_Store", |
2304 ] |
2310 ] |
2305 |
2311 |
2306 ignoreName = os.path.join(name, Hg.IgnoreFileName) |
2312 ignoreName = os.path.join(name, Hg.IgnoreFileName) |
2307 if os.path.exists(ignoreName): |
2313 if os.path.exists(ignoreName): |
2308 res = E5MessageBox.yesNo(self.__ui, |
2314 res = E5MessageBox.yesNo( |
|
2315 self.__ui, |
2309 self.trUtf8("Create .hgignore file"), |
2316 self.trUtf8("Create .hgignore file"), |
2310 self.trUtf8("""<p>The file <b>{0}</b> exists already.""" |
2317 self.trUtf8("""<p>The file <b>{0}</b> exists already.""" |
2311 """ Overwrite it?</p>""").format(ignoreName), |
2318 """ Overwrite it?</p>""").format(ignoreName), |
2312 icon=E5MessageBox.Warning) |
2319 icon=E5MessageBox.Warning) |
2313 else: |
2320 else: |
2373 if not ext: |
2380 if not ext: |
2374 ex = selectedFilter.split("(*")[1].split(")")[0] |
2381 ex = selectedFilter.split("(*")[1].split(")")[0] |
2375 if ex: |
2382 if ex: |
2376 fname += ex |
2383 fname += ex |
2377 if QFileInfo(fname).exists(): |
2384 if QFileInfo(fname).exists(): |
2378 res = E5MessageBox.yesNo(self.__ui, |
2385 res = E5MessageBox.yesNo( |
|
2386 self.__ui, |
2379 self.trUtf8("Create changegroup"), |
2387 self.trUtf8("Create changegroup"), |
2380 self.trUtf8("<p>The Mercurial changegroup file <b>{0}</b> " |
2388 self.trUtf8("<p>The Mercurial changegroup file <b>{0}</b> " |
2381 "already exists. Overwrite it?</p>") |
2389 "already exists. Overwrite it?</p>") |
2382 .format(fname), |
2390 .format(fname), |
2383 icon=E5MessageBox.Warning) |
2391 icon=E5MessageBox.Warning) |
2498 self.__lastChangeGroupPath or repodir, |
2506 self.__lastChangeGroupPath or repodir, |
2499 self.trUtf8("Mercurial Changegroup Files (*.hg);;All Files (*)")) |
2507 self.trUtf8("Mercurial Changegroup Files (*.hg);;All Files (*)")) |
2500 if files: |
2508 if files: |
2501 self.__lastChangeGroupPath = os.path.dirname(files[0]) |
2509 self.__lastChangeGroupPath = os.path.dirname(files[0]) |
2502 |
2510 |
2503 update = E5MessageBox.yesNo(self.__ui, |
2511 update = E5MessageBox.yesNo( |
|
2512 self.__ui, |
2504 self.trUtf8("Apply changegroups"), |
2513 self.trUtf8("Apply changegroups"), |
2505 self.trUtf8("""Shall the working directory be updated?"""), |
2514 self.trUtf8("""Shall the working directory be updated?"""), |
2506 yesDefault=True) |
2515 yesDefault=True) |
2507 |
2516 |
2508 args = [] |
2517 args = [] |
2639 self.hgGetBranchesList(repodir), |
2648 self.hgGetBranchesList(repodir), |
2640 bookmarksList) |
2649 bookmarksList) |
2641 if dlg.exec_() == QDialog.Accepted: |
2650 if dlg.exec_() == QDialog.Accepted: |
2642 rev, merge, date, user, message = dlg.getParameters() |
2651 rev, merge, date, user, message = dlg.getParameters() |
2643 if not rev: |
2652 if not rev: |
2644 E5MessageBox.warning(self.__ui, |
2653 E5MessageBox.warning( |
|
2654 self.__ui, |
2645 self.trUtf8("Backing out changeset"), |
2655 self.trUtf8("Backing out changeset"), |
2646 self.trUtf8("""No revision given. Aborting...""")) |
2656 self.trUtf8("""No revision given. Aborting...""")) |
2647 return |
2657 return |
2648 |
2658 |
2649 args = [] |
2659 args = [] |
3021 try: |
3031 try: |
3022 f = open(hgsub, "r") |
3032 f = open(hgsub, "r") |
3023 contents = f.readlines() |
3033 contents = f.readlines() |
3024 f.close() |
3034 f.close() |
3025 except IOError as err: |
3035 except IOError as err: |
3026 E5MessageBox.critical(self.__ui, |
3036 E5MessageBox.critical( |
|
3037 self.__ui, |
3027 self.trUtf8("Add Sub-repository"), |
3038 self.trUtf8("Add Sub-repository"), |
3028 self.trUtf8( |
3039 self.trUtf8( |
3029 """<p>The sub-repositories file .hgsub could not""" |
3040 """<p>The sub-repositories file .hgsub could not""" |
3030 """ be read.</p><p>Reason: {0}</p>""") |
3041 """ be read.</p><p>Reason: {0}</p>""") |
3031 .format(str(err))) |
3042 .format(str(err))) |
3032 return |
3043 return |
3033 |
3044 |
3034 if entry in contents: |
3045 if entry in contents: |
3035 E5MessageBox.critical(self.__ui, |
3046 E5MessageBox.critical( |
|
3047 self.__ui, |
3036 self.trUtf8("Add Sub-repository"), |
3048 self.trUtf8("Add Sub-repository"), |
3037 self.trUtf8( |
3049 self.trUtf8( |
3038 """<p>The sub-repositories file .hgsub already""" |
3050 """<p>The sub-repositories file .hgsub already""" |
3039 """ contains an entry <b>{0}</b>.""" |
3051 """ contains an entry <b>{0}</b>.""" |
3040 """ Aborting...</p>""").format(entry)) |
3052 """ Aborting...</p>""").format(entry)) |
3048 try: |
3060 try: |
3049 f = open(hgsub, "w") |
3061 f = open(hgsub, "w") |
3050 f.writelines(contents) |
3062 f.writelines(contents) |
3051 f.close() |
3063 f.close() |
3052 except IOError as err: |
3064 except IOError as err: |
3053 E5MessageBox.critical(self.__ui, |
3065 E5MessageBox.critical( |
|
3066 self.__ui, |
3054 self.trUtf8("Add Sub-repository"), |
3067 self.trUtf8("Add Sub-repository"), |
3055 self.trUtf8( |
3068 self.trUtf8( |
3056 """<p>The sub-repositories file .hgsub could not""" |
3069 """<p>The sub-repositories file .hgsub could not""" |
3057 """ be written to.</p><p>Reason: {0}</p>""") |
3070 """ be written to.</p><p>Reason: {0}</p>""") |
3058 .format(str(err))) |
3071 .format(str(err))) |
3068 """ |
3081 """ |
3069 hgsub = self.getHgSubPath() |
3082 hgsub = self.getHgSubPath() |
3070 |
3083 |
3071 subrepositories = [] |
3084 subrepositories = [] |
3072 if not os.path.isfile(hgsub): |
3085 if not os.path.isfile(hgsub): |
3073 E5MessageBox.critical(self.__ui, |
3086 E5MessageBox.critical( |
|
3087 self.__ui, |
3074 self.trUtf8("Remove Sub-repositories"), |
3088 self.trUtf8("Remove Sub-repositories"), |
3075 self.trUtf8("""<p>The sub-repositories file .hgsub does not""" |
3089 self.trUtf8("""<p>The sub-repositories file .hgsub does not""" |
3076 """ exist. Aborting...</p>""")) |
3090 """ exist. Aborting...</p>""")) |
3077 return |
3091 return |
3078 |
3092 |
3079 try: |
3093 try: |
3080 f = open(hgsub, "r") |
3094 f = open(hgsub, "r") |
3081 subrepositories = [line.strip() for line in f.readlines()] |
3095 subrepositories = [line.strip() for line in f.readlines()] |
3082 f.close() |
3096 f.close() |
3083 except IOError as err: |
3097 except IOError as err: |
3084 E5MessageBox.critical(self.__ui, |
3098 E5MessageBox.critical( |
|
3099 self.__ui, |
3085 self.trUtf8("Remove Sub-repositories"), |
3100 self.trUtf8("Remove Sub-repositories"), |
3086 self.trUtf8("""<p>The sub-repositories file .hgsub could not""" |
3101 self.trUtf8("""<p>The sub-repositories file .hgsub could not""" |
3087 """ be read.</p><p>Reason: {0}</p>""") |
3102 """ be read.</p><p>Reason: {0}</p>""") |
3088 .format(str(err))) |
3103 .format(str(err))) |
3089 return |
3104 return |
3097 try: |
3112 try: |
3098 f = open(hgsub, "w") |
3113 f = open(hgsub, "w") |
3099 f.write(contents) |
3114 f.write(contents) |
3100 f.close() |
3115 f.close() |
3101 except IOError as err: |
3116 except IOError as err: |
3102 E5MessageBox.critical(self.__ui, |
3117 E5MessageBox.critical( |
|
3118 self.__ui, |
3103 self.trUtf8("Remove Sub-repositories"), |
3119 self.trUtf8("Remove Sub-repositories"), |
3104 self.trUtf8( |
3120 self.trUtf8( |
3105 """<p>The sub-repositories file .hgsub could not""" |
3121 """<p>The sub-repositories file .hgsub could not""" |
3106 """ be written to.</p><p>Reason: {0}</p>""") |
3122 """ be written to.</p><p>Reason: {0}</p>""") |
3107 .format(str(err))) |
3123 .format(str(err))) |
3127 self.__getExtensionsInfo() |
3143 self.__getExtensionsInfo() |
3128 |
3144 |
3129 if self.__client: |
3145 if self.__client: |
3130 ok, err = self.__client.restartServer() |
3146 ok, err = self.__client.restartServer() |
3131 if not ok: |
3147 if not ok: |
3132 E5MessageBox.warning(None, |
3148 E5MessageBox.warning( |
|
3149 None, |
3133 self.trUtf8("Mercurial Command Server"), |
3150 self.trUtf8("Mercurial Command Server"), |
3134 self.trUtf8( |
3151 self.trUtf8( |
3135 """<p>The Mercurial Command Server could not be""" |
3152 """<p>The Mercurial Command Server could not be""" |
3136 """ restarted.</p><p>Reason: {0}</p>""").format(err)) |
3153 """ restarted.</p><p>Reason: {0}</p>""").format(err)) |
3137 self.__client = None |
3154 self.__client = None |
3263 client = HgClient(repodir, "utf-8", self) |
3280 client = HgClient(repodir, "utf-8", self) |
3264 ok, err = client.startServer() |
3281 ok, err = client.startServer() |
3265 if ok: |
3282 if ok: |
3266 self.__client = client |
3283 self.__client = client |
3267 else: |
3284 else: |
3268 E5MessageBox.warning(None, |
3285 E5MessageBox.warning( |
|
3286 None, |
3269 self.trUtf8("Mercurial Command Server"), |
3287 self.trUtf8("Mercurial Command Server"), |
3270 self.trUtf8( |
3288 self.trUtf8( |
3271 """<p>The Mercurial Command Server could not be""" |
3289 """<p>The Mercurial Command Server could not be""" |
3272 """ started.</p><p>Reason: {0}</p>""").format(err)) |
3290 """ started.</p><p>Reason: {0}</p>""").format(err)) |
3273 |
3291 |