Plugins/VcsPlugins/vcsMercurial/hg.py

changeset 3020
542e97d4ecb3
parent 3008
7848489bcb92
child 3023
34ce20603bf7
equal deleted inserted replaced
3019:7912530a33e2 3020:542e97d4ecb3
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

eric ide

mercurial