@@ -177,6 +177,8 @@
_nokeep = 'nokeep'
# colon is essential to differentiate from a real bookmark name
_noactivebook = ':no-active-bookmark'
+ _interactive = 'interactive'
+ _noninteractive = 'noninteractive'
@classmethod
def _verifyandtransform(cls, d):
@@ -247,6 +249,7 @@
obj.activebookmark = ''
if d.get('activebook', '') != cls._noactivebook:
obj.activebookmark = d.get('activebook', '')
+ obj.interactive = d.get('interactive') == cls._interactive
except (error.RepoLookupError, KeyError) as err:
raise error.CorruptedState(pycompat.bytestr(err))
@@ -254,7 +257,7 @@
@classmethod
def save(cls, repo, name, originalwctx, pendingctx, nodestoremove,
- branchtorestore, keep=False, activebook=''):
+ branchtorestore, keep=False, activebook='', interactive=False):
info = {
"name": name,
"originalwctx": nodemod.hex(originalwctx.node()),
@@ -265,7 +268,9 @@
for n in nodestoremove]),
"branchtorestore": branchtorestore,
"keep": cls._keep if keep else cls._nokeep,
- "activebook": activebook or cls._noactivebook
+ "activebook": activebook or cls._noactivebook,
+ "interactive": (cls._interactive
+ if interactive else cls._noninteractive)
}
scmutil.simplekeyvaluefile(
repo.vfs, cls._filename).write(info,
@@ -698,7 +703,7 @@
"""subcommand to continue an in-progress unshelve"""
# We're finishing off a merge. First parent is our original
# parent, second is the temporary "fake" commit we're unshelving.
- interactive = opts.get('interactive')
+ interactive = state.interactive
with repo.lock():
checkparents(repo, state)
ms = merge.mergestate.read(repo)
@@ -854,7 +859,8 @@
nodestoremove = [repo.changelog.node(rev)
for rev in pycompat.xrange(oldtiprev, len(repo))]
shelvedstate.save(repo, basename, pctx, tmpwctx, nodestoremove,
- branchtorestore, opts.get('keep'), activebookmark)
+ branchtorestore, opts.get('keep'), activebookmark,
+ interactive)
raise error.InterventionRequired(
_("unresolved conflicts (see 'hg resolve', then "
"'hg unshelve --continue')"))