diff mercurial/cmdutil.py @ 42579:b8d54f4625cb

merge: disallow merge abort in case of an unfinished operation (issue6160) This patch disallows `hg merge --abort` in case an operation of higher precedence i.e unshelve, rebase, histedit are in unfinished states. This is done so as to avoid partial abort of these operations in case merge abort is called at an interrupted step. The patch adds a `cmdutil.getunfinishedstate` function which checks for operations under progress and returns a `statecheck` object for it. Differential Revision: https://phab.mercurial-scm.org/D6607
author Taapas Agrawal <taapas2897@gmail.com>
date Tue, 09 Jul 2019 12:58:29 +0300
parents ceb31d96d3ae
children 5171937ad0f9
line wrap: on
line diff
--- a/mercurial/cmdutil.py	Mon Jul 08 15:01:18 2019 -0700
+++ b/mercurial/cmdutil.py	Tue Jul 09 12:58:29 2019 +0300
@@ -3297,6 +3297,14 @@
         if s._clearable and s.isunfinished(repo):
             util.unlink(repo.vfs.join(s._fname))
 
+def getunfinishedstate(repo):
+    ''' Checks for unfinished operations and returns statecheck object
+        for it'''
+    for state in statemod._unfinishedstates:
+        if state.isunfinished(repo):
+            return state
+    return None
+
 def howtocontinue(repo):
     '''Check for an unfinished operation and return the command to finish
     it.