--- a/eric6/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py Thu Aug 22 15:47:14 2019 +0200 +++ b/eric6/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py Fri Aug 23 02:02:42 2019 +0300 @@ -419,20 +419,34 @@ self.vcsMergeAct.triggered.connect(self._vcsMerge) self.actions.append(self.vcsMergeAct) - self.hgCancelMergeAct = E5Action( - self.tr('Cancel uncommitted merge'), - self.tr('Cancel uncommitted merge'), + self.hgCommitMergeAct = E5Action( + self.tr('Commit Merge'), + self.tr('Commit Merge'), + 0, 0, self, 'mercurial_commit_merge') + self.hgCommitMergeAct.setStatusTip(self.tr( + 'Commit a merge.' + )) + self.hgCommitMergeAct.setWhatsThis(self.tr( + """<b>Commit a merge</b>""" + """<p>This commits a merge working directory</p>""" + )) + self.hgCommitMergeAct.triggered.connect(self.__hgCommitMerge) + self.actions.append(self.hgCommitMergeAct) + + self.hgAbortMergeAct = E5Action( + self.tr('Abort Merge'), + self.tr('Abort Merge'), 0, 0, self, 'mercurial_cancel_merge') - self.hgCancelMergeAct.setStatusTip(self.tr( - 'Cancel an uncommitted merge and lose all changes' + self.hgAbortMergeAct.setStatusTip(self.tr( + 'Abort an uncommitted merge and lose all changes' )) - self.hgCancelMergeAct.setWhatsThis(self.tr( - """<b>Cancel uncommitted merge</b>""" - """<p>This cancels an uncommitted merge causing all changes""" + self.hgAbortMergeAct.setWhatsThis(self.tr( + """<b>Abort uncommitted merge</b>""" + """<p>This aborts an uncommitted merge causing all changes""" """ to be lost.</p>""" )) - self.hgCancelMergeAct.triggered.connect(self.__hgCancelMerge) - self.actions.append(self.hgCancelMergeAct) + self.hgAbortMergeAct.triggered.connect(self.__hgAbortMerge) + self.actions.append(self.hgAbortMergeAct) self.hgReMergeAct = E5Action( self.tr('Re-Merge'), @@ -1298,6 +1312,8 @@ self.hgBookmarkOutgoingAct.setEnabled(self.vcs.canPush()) if self.vcs.version >= (3, 8): self.hgBookmarkPushCurrentAct.setEnabled(self.vcs.canPull()) + self.hgCommitMergeAct.setEnabled( + self.vcs.canCommitMerge(self.project.ppath)) def initMenu(self, menu): """ @@ -1434,7 +1450,8 @@ mergeMenu.addAction(self.vcsResolveAct) mergeMenu.addAction(self.hgUnresolveAct) mergeMenu.addAction(self.hgReMergeAct) - mergeMenu.addAction(self.hgCancelMergeAct) + mergeMenu.addAction(self.hgCommitMergeAct) + mergeMenu.addAction(self.hgAbortMergeAct) act = menu.addAction( UI.PixmapCache.getIcon( @@ -1533,6 +1550,7 @@ toolbarManager.addAction(self.vcsRevertAct, title) toolbarManager.addAction(self.vcsMergeAct, title) toolbarManager.addAction(self.hgReMergeAct, title) + toolbarManager.addAction(self.hgCommitMergeAct, title) toolbarManager.addAction(self.vcsTagAct, title) toolbarManager.addAction(self.hgBranchAct, title) toolbarManager.addAction(self.vcsSwitchAct, title) @@ -1705,12 +1723,18 @@ unresolved. """ self.vcs.hgResolved(self.project.ppath, unresolve=True) - - def __hgCancelMerge(self): + + def __hgCommitMerge(self): + """ + Private slot used to commit a merge. """ - Private slot used to cancel an uncommitted merge. + self.vcs.vcsCommit(self.project.ppath, 'Merge', merge=True) + + def __hgAbortMerge(self): """ - self.vcs.hgCancelMerge(self.project.ppath) + Private slot used to abort an uncommitted merge. + """ + self.vcs.hgAbortMerge(self.project.ppath) def __hgShowConflicts(self): """