D6551: statecheck: added support for cmdutil.afterresolvedstates
taapas1128 (Taapas Agrawal)
phabricator at mercurial-scm.org
Thu Jun 27 17:03:45 UTC 2019
Closed by commit rHG0231032729c4: statecheck: added support for cmdutil.afterresolvedstates (authored by taapas1128).
This revision was automatically updated to reflect the committed changes.
This revision was not accepted when it landed; it landed in state "Needs Review".
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D6551?vs=15645&id=15685
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D6551/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D6551
AFFECTED FILES
hgext/histedit.py
hgext/rebase.py
hgext/shelve.py
mercurial/cmdutil.py
mercurial/state.py
CHANGE DETAILS
diff --git a/mercurial/state.py b/mercurial/state.py
--- a/mercurial/state.py
+++ b/mercurial/state.py
@@ -98,8 +98,8 @@
"""
def __init__(self, opname, fname, clearable=False, allowcommit=False,
- reportonly=False, stopflag=False, cmdmsg="", cmdhint="",
- statushint=""):
+ reportonly=False, continueflag=False, stopflag=False ,
+ cmdmsg="", cmdhint="", statushint=""):
"""opname is the name the command or operation
fname is the file name in which data should be stored in .hg directory.
It is None for merge command.
@@ -110,6 +110,8 @@
state or not.
reportonly flag is used for operations like bisect where we just
need to detect the operation using 'hg status --verbose'
+ continueflag is a boolean determines whether or not a command supports
+ `--continue` option or not.
stopflag is a boolean that determines whether or not a command supports
--stop flag
cmdmsg is used to pass a different status message in case standard
@@ -130,6 +132,7 @@
self._cmdmsg = cmdmsg
self._stopflag = stopflag
self._reportonly = reportonly
+ self._continueflag = continueflag
def statusmsg(self):
"""returns the hint message corresponding to the command for
@@ -160,6 +163,10 @@
return _('%s in progress') % (self._opname)
return self._cmdmsg
+ def continuemsg(self):
+ """ returns appropriate continue message corresponding to command"""
+ return _('hg %s --continue') % (self._opname)
+
def isunfinished(self, repo):
"""determines whether a multi-step operation is in progress
or not
@@ -183,7 +190,8 @@
addunfinished(
'graft', fname='graftstate', clearable=True, stopflag=True,
- cmdhint=_("use 'hg graft --continue' or 'hg graft --stop' to stop"),
+ continueflag=True,
+ cmdhint=_("use 'hg graft --continue' or 'hg graft --stop' to stop")
)
addunfinished(
'update', fname='updatestate', clearable=True,
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -3296,11 +3296,6 @@
if s._clearable and s.isunfinished(repo):
util.unlink(repo.vfs.join(s._fname))
-afterresolvedstates = [
- ('graftstate',
- _('hg graft --continue')),
- ]
-
def howtocontinue(repo):
'''Check for an unfinished operation and return the command to finish
it.
@@ -3312,9 +3307,11 @@
a boolean.
'''
contmsg = _("continue: %s")
- for f, msg in afterresolvedstates:
- if repo.vfs.exists(f):
- return contmsg % msg, True
+ for state in statemod._unfinishedstates:
+ if not state._continueflag:
+ continue
+ if state.isunfinished(repo):
+ return contmsg % state.continuemsg(), True
if repo[None].dirty(missing=True, merge=False, branch=False):
return contmsg % _("hg commit"), False
return None, None
diff --git a/hgext/shelve.py b/hgext/shelve.py
--- a/hgext/shelve.py
+++ b/hgext/shelve.py
@@ -1141,8 +1141,7 @@
def extsetup(ui):
statemod.addunfinished(
- 'unshelve', fname=shelvedstate._filename,
+ 'unshelve', fname=shelvedstate._filename, continueflag=True,
cmdmsg=_('unshelve already in progress')
)
- cmdutil.afterresolvedstates.append(
- [shelvedstate._filename, _('hg unshelve --continue')])
+
diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -1950,6 +1950,5 @@
entry[1].append(('t', 'tool', '',
_("specify merge tool for rebase")))
cmdutil.summaryhooks.add('rebase', summaryhook)
- statemod.addunfinished('rebase', fname='rebasestate', stopflag=True)
- cmdutil.afterresolvedstates.append(
- ['rebasestate', _('hg rebase --continue')])
+ statemod.addunfinished('rebase', fname='rebasestate', stopflag=True,
+ continueflag=True)
diff --git a/hgext/histedit.py b/hgext/histedit.py
--- a/hgext/histedit.py
+++ b/hgext/histedit.py
@@ -2313,6 +2313,6 @@
def extsetup(ui):
cmdutil.summaryhooks.add('histedit', summaryhook)
- statemod.addunfinished('histedit', fname='histedit-state', allowcommit=True)
- cmdutil.afterresolvedstates.append(
- ['histedit-state', _('hg histedit --continue')])
+ statemod.addunfinished('histedit', fname='histedit-state', allowcommit=True,
+ continueflag=True)
+
To: taapas1128, durin42, martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list