Mercurial > public > mercurial-scm > hg
diff mercurial/cmd_impls/graft.py @ 52332:8d7029218a61
graft: move "dry_run" and "base" in statedate
Same logic as before.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 20 Nov 2024 02:37:37 +0100 |
parents | 11fb7f737456 |
children | da216ed31c3d |
line wrap: on
line diff
--- a/mercurial/cmd_impls/graft.py Wed Nov 20 02:37:28 2024 +0100 +++ b/mercurial/cmd_impls/graft.py Wed Nov 20 02:37:37 2024 +0100 @@ -116,6 +116,7 @@ b'user', b'log', b'no_commit', + b'dry_run', ): v = opts.get(o.decode('ascii')) # if statedata is already set, it comes from --continue and test says @@ -127,6 +128,7 @@ basectx = None if opts.get('base'): basectx = logcmdutil.revsingle(repo, opts['base'], None) + statedata[b'base'] = basectx.hex() if basectx is None: # check for merges for rev in repo.revs(b'%ld and merge()', revs): @@ -217,10 +219,8 @@ if not revs: return None - if opts.get('base'): - statedata[b'base'] = opts['base'] - - return "GRAFT", [graftstate, statedata, revs, editor, basectx, cont, opts] + dry_run = bool(opts.get("dry_run")) + return "GRAFT", [graftstate, statedata, revs, editor, cont, dry_run, opts] def _graft_revisions( @@ -230,8 +230,8 @@ statedata, revs, editor, - basectx, cont=False, + dry_run=False, opts, ): """actually graft some revisions""" @@ -245,7 +245,7 @@ if names: desc += b' (%s)' % b' '.join(names) ui.status(_(b'grafting %s\n') % desc) - if opts.get('dry_run'): + if dry_run: continue source = ctx.extra().get(b'source') @@ -265,7 +265,10 @@ if not cont: # perform the graft merge with p1(rev) as 'ancestor' overrides = {(b'ui', b'forcemerge'): opts.get('tool', b'')} - base = ctx.p1() if basectx is None else basectx + if b'base' in statedata: + base = repo[statedata[b'base']] + else: + base = ctx.p1() with ui.configoverride(overrides, b'graft'): stats = mergemod.graft( repo, ctx, base, [b'local', b'graft', b'parent of graft'] @@ -300,7 +303,7 @@ nn.append(node) # remove state when we complete successfully - if not opts.get('dry_run'): + if not dry_run: graftstate.delete() return 0