D6552: statecheck: added support for cmdutil.afterresolvedstates
taapas1128 (Taapas Agrawal)
phabricator at mercurial-scm.org
Thu Jun 20 12:09:48 EDT 2019
taapas1128 updated this revision to Diff 15615.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D6552?vs=15612&id=15615
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D6552/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D6552
AFFECTED FILES
hgext/histedit.py
hgext/rebase.py
hgext/shelve.py
hgext/transplant.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, cmdmsg="", cmdhint="", statushint="",
- stopflag=False):
+ reportonly=False, doesnotcontinue=False, cmdmsg="", cmdhint="",
+ statushint="", stopflag=False):
"""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.
@@ -111,6 +111,8 @@
reportonly flag is used for operations like bisect where we just
need to detect the operation using 'hg status --verbose'
cmdmsg is used to pass a different status message in case standard
+ doesnotcontinue flag determines whether a command supports `--continue`
+ option or not.
message of the format "abort: cmdname in progress" is not desired.
cmdhint is used to pass a different hint message in case standard
message of the format "To continue: hg cmdname --continue
@@ -132,6 +134,7 @@
self._cmdmsg = cmdmsg
self._stopflag = stopflag
self._reportonly = reportonly
+ self._doesnotcontinue = doesnotcontinue
def statusmsg(self):
"""returns the hint message corresponding to the command for
@@ -162,6 +165,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
@@ -188,19 +195,20 @@
cmdhint=_("use 'hg graft --continue' or 'hg graft --stop' to stop"),
)
addunfinished(
- 'update', fname='updatestate', clearable=True,
+ 'update', fname='updatestate', clearable=True, doesnotcontinue=True,
cmdmsg=_('last update was interrupted'),
cmdhint=_("use 'hg update' to get a consistent checkout"),
statushint=_("To continue: hg update")
)
addunfinished(
'bisect', fname='bisect.state', allowcommit=True, reportonly=True,
+ doesnotcontinue=True,
statushint=_('To mark the changeset good: hg bisect --good\n'
'To mark the changeset bad: hg bisect --bad\n'
'To abort: hg bisect --reset\n')
)
addunfinished(
- 'merge', fname=None, clearable=True, allowcommit=True,
+ 'merge', fname=None, clearable=True, allowcommit=True, doesnotcontinue=True,
cmdmsg=_('outstanding uncommitted merge'),
statushint=_('To continue: hg commit\n'
'To abort: hg merge --abort'),
@@ -253,11 +261,6 @@
if state.isunfinished(repo):
return (state._opname, state.statusmsg())
-afterresolvedstates = [
- ('graftstate',
- _('hg graft --continue')),
- ]
-
def howtocontinue(repo):
'''Check for an unfinished operation and return the command to finish
it.
@@ -269,9 +272,11 @@
a boolean.
'''
contmsg = _("continue: %s")
- for f, msg in afterresolvedstates:
- if repo.vfs.exists(f):
- return contmsg % msg, True
+ for state in _unfinishedstates:
+ if state._doesnotcontinue:
+ 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/transplant.py b/hgext/transplant.py
--- a/hgext/transplant.py
+++ b/hgext/transplant.py
@@ -760,6 +760,7 @@
def extsetup(ui):
statemod.addunfinished (
'transplant', fname='transplant/journal', clearable=True,
+ doesnotcontinue=True,
statushint=_('To continue: hg transplant --continue\n'
'To abort: hg update'),
cmdhint=_("use 'hg transplant --continue' or 'hg update' to abort")
diff --git a/hgext/shelve.py b/hgext/shelve.py
--- a/hgext/shelve.py
+++ b/hgext/shelve.py
@@ -1142,5 +1142,4 @@
'unshelve', fname=shelvedstate._filename,
cmdmsg=_('unshelve already in progress')
)
- statemod.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
@@ -1951,5 +1951,3 @@
_("specify merge tool for rebase")))
cmdutil.summaryhooks.add('rebase', summaryhook)
statemod.addunfinished('rebase', fname='rebasestate', stopflag=True)
- statemod.afterresolvedstates.append(
- ['rebasestate', _('hg rebase --continue')])
diff --git a/hgext/histedit.py b/hgext/histedit.py
--- a/hgext/histedit.py
+++ b/hgext/histedit.py
@@ -2314,5 +2314,4 @@
def extsetup(ui):
cmdutil.summaryhooks.add('histedit', summaryhook)
statemod.addunfinished('histedit', fname='histedit-state', allowcommit=True)
- statemod.afterresolvedstates.append(
- ['histedit-state', _('hg histedit --continue')])
+
To: taapas1128, durin42, martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list