mercurial/commands.py
changeset 44916 61719b9658b1
parent 44865 233ee525dcef
parent 44915 2dc5ae953c4a
child 44997 93aa152d4295
equal deleted inserted replaced
44905:f330d6117a5b 44916:61719b9658b1
  2969             )
  2969             )
  2970         )
  2970         )
  2971 
  2971 
  2972     revs = list(revs)
  2972     revs = list(revs)
  2973     revs.extend(opts.get(b'rev'))
  2973     revs.extend(opts.get(b'rev'))
  2974     basectx = None
       
  2975     if opts.get(b'base'):
       
  2976         basectx = scmutil.revsingle(repo, opts[b'base'], None)
       
  2977     # a dict of data to be stored in state file
  2974     # a dict of data to be stored in state file
  2978     statedata = {}
  2975     statedata = {}
  2979     # list of new nodes created by ongoing graft
  2976     # list of new nodes created by ongoing graft
  2980     statedata[b'newnodes'] = []
  2977     statedata[b'newnodes'] = []
  2981 
  2978 
  3061                 opts[b'user'] = statedata[b'user']
  3058                 opts[b'user'] = statedata[b'user']
  3062             if statedata.get(b'log'):
  3059             if statedata.get(b'log'):
  3063                 opts[b'log'] = True
  3060                 opts[b'log'] = True
  3064             if statedata.get(b'no_commit'):
  3061             if statedata.get(b'no_commit'):
  3065                 opts[b'no_commit'] = statedata.get(b'no_commit')
  3062                 opts[b'no_commit'] = statedata.get(b'no_commit')
       
  3063             if statedata.get(b'base'):
       
  3064                 opts[b'base'] = statedata.get(b'base')
  3066             nodes = statedata[b'nodes']
  3065             nodes = statedata[b'nodes']
  3067             revs = [repo[node].rev() for node in nodes]
  3066             revs = [repo[node].rev() for node in nodes]
  3068         else:
  3067         else:
  3069             cmdutil.wrongtooltocontinue(repo, _(b'graft'))
  3068             cmdutil.wrongtooltocontinue(repo, _(b'graft'))
  3070     else:
  3069     else:
  3073         cmdutil.checkunfinished(repo)
  3072         cmdutil.checkunfinished(repo)
  3074         cmdutil.bailifchanged(repo)
  3073         cmdutil.bailifchanged(repo)
  3075         revs = scmutil.revrange(repo, revs)
  3074         revs = scmutil.revrange(repo, revs)
  3076 
  3075 
  3077     skipped = set()
  3076     skipped = set()
       
  3077     basectx = None
       
  3078     if opts.get(b'base'):
       
  3079         basectx = scmutil.revsingle(repo, opts[b'base'], None)
  3078     if basectx is None:
  3080     if basectx is None:
  3079         # check for merges
  3081         # check for merges
  3080         for rev in repo.revs(b'%ld and merge()', revs):
  3082         for rev in repo.revs(b'%ld and merge()', revs):
  3081             ui.warn(_(b'skipping ungraftable merge revision %d\n') % rev)
  3083             ui.warn(_(b'skipping ungraftable merge revision %d\n') % rev)
  3082             skipped.add(rev)
  3084             skipped.add(rev)
  3165         if not revs:
  3167         if not revs:
  3166             return -1
  3168             return -1
  3167 
  3169 
  3168     if opts.get(b'no_commit'):
  3170     if opts.get(b'no_commit'):
  3169         statedata[b'no_commit'] = True
  3171         statedata[b'no_commit'] = True
       
  3172     if opts.get(b'base'):
       
  3173         statedata[b'base'] = opts[b'base']
  3170     for pos, ctx in enumerate(repo.set(b"%ld", revs)):
  3174     for pos, ctx in enumerate(repo.set(b"%ld", revs)):
  3171         desc = b'%d:%s "%s"' % (
  3175         desc = b'%d:%s "%s"' % (
  3172             ctx.rev(),
  3176             ctx.rev(),
  3173             ctx,
  3177             ctx,
  3174             ctx.description().split(b'\n', 1)[0],
  3178             ctx.description().split(b'\n', 1)[0],