changeset 8414:2348ce25849b

commitctx: use contexts more fully
author Matt Mackall <mpm@selenic.com>
date Thu, 14 May 2009 13:24:26 -0500
parents 36448afdadd4
children 221a18019b2b
files mercurial/localrepo.py
diffstat 1 files changed, 8 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/localrepo.py	Thu May 14 13:21:20 2009 -0500
+++ b/mercurial/localrepo.py	Thu May 14 13:24:26 2009 -0500
@@ -829,17 +829,12 @@
         tr = lock = None
         valid = 0 # don't save the dirstate if this isn't set
         remove = ctx.removed()
-
-        p1, p2 = [p.node() for p in ctx.parents()]
-        c1 = self.changelog.read(p1)
-        c2 = self.changelog.read(p2)
-        m1 = self.manifest.read(c1[0]).copy()
-        m2 = self.manifest.read(c2[0])
+        p1, p2 = ctx.p1(), ctx.p2()
+        m1 = p1.manifest().copy()
+        m2 = p2.manifest()
         user = ctx.user()
 
-        xp1, xp2 = hex(p1), hex(p2)
-        if p2 == nullid:
-            xp2 = ''
+        xp1, xp2 = p1.hex(), p2 and p2.hex() or ''
         self.hook("precommit", throw=True, parent1=xp1, parent2=xp2)
 
         lock = self.lock()
@@ -884,8 +879,8 @@
                 if f in m1:
                     del m1[f]
                     removed1.append(f)
-            mn = self.manifest.add(m1, trp, linkrev, c1[0], c2[0],
-                                   (new, removed1))
+            mn = self.manifest.add(m1, trp, linkrev, p1.manifestnode(),
+                                   p2.manifestnode(), (new, removed1))
 
             text = ctx.description()
             if editor:
@@ -897,7 +892,8 @@
             text = '\n'.join(lines)
 
             self.changelog.delayupdate()
-            n = self.changelog.add(mn, changed + removed, text, trp, p1, p2,
+            n = self.changelog.add(mn, changed + removed, text, trp,
+                                   p1.node(), p2.node(),
                                    user, ctx.date(), ctx.extra().copy())
             p = lambda: self.changelog.writepending() and self.root or ""
             self.hook('pretxncommit', throw=True, node=hex(n), parent1=xp1,