comparison hgext/rebase.py @ 37041:0b1230a5a958

rebase: look up default date outside of conclude[memory]node() Differential Revision: https://phab.mercurial-scm.org/D2922
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 20 Mar 2018 21:59:04 -0700
parents b8d305bd12ca
children 8ff5772711fa
comparison
equal deleted inserted replaced
37040:b8d305bd12ca 37041:0b1230a5a958
444 Return node of committed revision.''' 444 Return node of committed revision.'''
445 repo = self.repo 445 repo = self.repo
446 ctx = repo[rev] 446 ctx = repo[rev]
447 if commitmsg is None: 447 if commitmsg is None:
448 commitmsg = ctx.description() 448 commitmsg = ctx.description()
449 date = self.date
450 if date is None:
451 date = ctx.date()
449 extra = {'rebase_source': ctx.hex()} 452 extra = {'rebase_source': ctx.hex()}
450 for c in self.extrafns: 453 for c in self.extrafns:
451 c(ctx, extra) 454 c(ctx, extra)
452 keepbranch = self.keepbranchesf and repo[p1].branch() != ctx.branch() 455 keepbranch = self.keepbranchesf and repo[p1].branch() != ctx.branch()
453 destphase = max(ctx.phase(), phases.draft) 456 destphase = max(ctx.phase(), phases.draft)
459 newnode = concludememorynode(repo, ctx, p1, p2, 462 newnode = concludememorynode(repo, ctx, p1, p2,
460 wctx=self.wctx, 463 wctx=self.wctx,
461 extra=extra, 464 extra=extra,
462 commitmsg=commitmsg, 465 commitmsg=commitmsg,
463 editor=editor, 466 editor=editor,
464 date=self.date) 467 date=date)
465 mergemod.mergestate.clean(repo) 468 mergemod.mergestate.clean(repo)
466 else: 469 else:
467 newnode = concludenode(repo, ctx, p1, p2, 470 newnode = concludenode(repo, ctx, p1, p2,
468 extra=extra, 471 extra=extra,
469 commitmsg=commitmsg, 472 commitmsg=commitmsg,
470 editor=editor, 473 editor=editor,
471 date=self.date) 474 date=date)
472 475
473 if newnode is None: 476 if newnode is None:
474 # If it ended up being a no-op commit, then the normal 477 # If it ended up being a no-op commit, then the normal
475 # merge state clean-up path doesn't happen, so do it 478 # merge state clean-up path doesn't happen, so do it
476 # here. Fix issue5494 479 # here. Fix issue5494
1033 Return node of committed revision.''' 1036 Return node of committed revision.'''
1034 # Replicates the empty check in ``repo.commit``. 1037 # Replicates the empty check in ``repo.commit``.
1035 if wctx.isempty() and not repo.ui.configbool('ui', 'allowemptycommit'): 1038 if wctx.isempty() and not repo.ui.configbool('ui', 'allowemptycommit'):
1036 return None 1039 return None
1037 1040
1038 if date is None:
1039 date = ctx.date()
1040
1041 # By convention, ``extra['branch']`` (set by extrafn) clobbers 1041 # By convention, ``extra['branch']`` (set by extrafn) clobbers
1042 # ``branch`` (used when passing ``--keepbranches``). 1042 # ``branch`` (used when passing ``--keepbranches``).
1043 branch = repo[p1].branch() 1043 branch = repo[p1].branch()
1044 if 'branch' in extra: 1044 if 'branch' in extra:
1045 branch = extra['branch'] 1045 branch = extra['branch']
1058 dsguard = dirstateguard.dirstateguard(repo, 'rebase') 1058 dsguard = dirstateguard.dirstateguard(repo, 'rebase')
1059 with dsguard: 1059 with dsguard:
1060 repo.setparents(repo[p1].node(), repo[p2].node()) 1060 repo.setparents(repo[p1].node(), repo[p2].node())
1061 1061
1062 # Commit might fail if unresolved files exist 1062 # Commit might fail if unresolved files exist
1063 if date is None:
1064 date = ctx.date()
1065 newnode = repo.commit(text=commitmsg, user=ctx.user(), 1063 newnode = repo.commit(text=commitmsg, user=ctx.user(),
1066 date=date, extra=extra, editor=editor) 1064 date=date, extra=extra, editor=editor)
1067 1065
1068 repo.dirstate.setbranch(repo[newnode].branch()) 1066 repo.dirstate.setbranch(repo[newnode].branch())
1069 return newnode 1067 return newnode