graft: start storing new nodes formed in graftstate
This patch starts storing the new nodes formed during the ongoing graft
operation in the graftstate. We need the list of new nodes formed while
implmenting `graft --abort` which will strip out the new nodes.
Differential Revision: https://phab.mercurial-scm.org/D3751
--- a/mercurial/commands.py Thu Jun 14 23:22:51 2018 +0900
+++ b/mercurial/commands.py Fri Jun 15 02:34:27 2018 +0530
@@ -2186,6 +2186,8 @@
revs.extend(opts.get('rev'))
# a dict of data to be stored in state file
statedata = {}
+ # list of new nodes created by ongoing graft
+ statedata['newnodes'] = []
if not opts.get('user') and opts.get('currentuser'):
opts['user'] = ui.username()
@@ -2362,6 +2364,9 @@
ui.warn(
_('note: graft of %d:%s created no changes to commit\n') %
(ctx.rev(), ctx))
+ # checking that newnodes exist because old state files won't have it
+ elif statedata.get('newnodes') is not None:
+ statedata['newnodes'].append(node)
# remove state when we complete successfully
if not opts.get('dry_run'):