rebase: pass in ctx, not rev, to conclude[memory]node()
authorMartin von Zweigbergk <martinvonz@google.com>
Wed, 21 Mar 2018 11:04:13 -0700
changeset 37034 fbc82a08bdcb
parent 37033 5f99142f59cc
child 37035 b7f5d03e1e54
rebase: pass in ctx, not rev, to conclude[memory]node() They both need it and there's no locking that might make the results different, so let's do it in one place. This also lets us move out more common code in the following patches. Differential Revision: https://phab.mercurial-scm.org/D2915
hgext/rebase.py
--- a/hgext/rebase.py	Wed Mar 21 11:03:31 2018 -0700
+++ b/hgext/rebase.py	Wed Mar 21 11:04:13 2018 -0700
@@ -454,8 +454,9 @@
         Reuse commit info from rev but also store useful information in extra.
         Return node of committed revision.'''
         repo = self.repo
+        ctx = repo[rev]
         if self.inmemory:
-            newnode = concludememorynode(repo, rev, p1, p2,
+            newnode = concludememorynode(repo, ctx, p1, p2,
                 wctx=self.wctx,
                 extrafn=_makeextrafn(self.extrafns),
                 commitmsg=commitmsg,
@@ -464,7 +465,7 @@
                 date=self.date)
             mergemod.mergestate.clean(repo)
         else:
-            newnode = concludenode(repo, rev, p1, p2,
+            newnode = concludenode(repo, ctx, p1, p2,
                 extrafn=_makeextrafn(self.extrafns),
                 commitmsg=commitmsg,
                 editor=editor,
@@ -1028,12 +1029,11 @@
                      (max(destancestors),
                       ', '.join("%d" % p for p in sorted(parents))))
 
-def concludememorynode(repo, rev, p1, p2, wctx, editor, extrafn, keepbranches,
+def concludememorynode(repo, ctx, p1, p2, wctx, editor, extrafn, keepbranches,
                        date, commitmsg=None):
     '''Commit the memory changes with parents p1 and p2. Reuse commit info from
-    rev but also store useful information in extra.
+    ctx but also store useful information in extra.
     Return node of committed revision.'''
-    ctx = repo[rev]
     if commitmsg is None:
         commitmsg = ctx.description()
     keepbranch = keepbranches and repo[p1].branch() != ctx.branch()
@@ -1065,9 +1065,9 @@
         wctx.clean() # Might be reused
         return commitres
 
-def concludenode(repo, rev, p1, p2, editor, extrafn, keepbranches, date,
+def concludenode(repo, ctx, p1, p2, editor, extrafn, keepbranches, date,
                  commitmsg=None):
-    '''Commit the wd changes with parents p1 and p2. Reuse commit info from rev
+    '''Commit the wd changes with parents p1 and p2. Reuse commit info from ctx
     but also store useful information in extra.
     Return node of committed revision.'''
     dsguard = util.nullcontextmanager()
@@ -1075,7 +1075,6 @@
         dsguard = dirstateguard.dirstateguard(repo, 'rebase')
     with dsguard:
         repo.setparents(repo[p1].node(), repo[p2].node())
-        ctx = repo[rev]
         if commitmsg is None:
             commitmsg = ctx.description()
         keepbranch = keepbranches and repo[p1].branch() != ctx.branch()