[PATCH 6 of 7] context: add manifestctx property on changectx

Durham Goode durham at fb.com
Tue Nov 8 11:43:00 EST 2016


# HG changeset patch
# User Durham Goode <durham at fb.com>
# Date 1478621023 28800
#      Tue Nov 08 08:03:43 2016 -0800
# Node ID 05bf15311d25783de82dcbe0f93df5963b504357
# Parent  30637bdf444e47e38edef0bc52c9ffe313816c66
context: add manifestctx property on changectx

This allows us to access the manifestctx for a given commit. This will be used
in a later patch to be able to copy the manifestctx when we want to make a new
commit.

diff --git a/mercurial/context.py b/mercurial/context.py
--- a/mercurial/context.py
+++ b/mercurial/context.py
@@ -178,6 +178,8 @@ class basectx(object):
         return hex(self.node())
     def manifest(self):
         return self._manifest
+    def manifestctx(self):
+        return self._manifestctx
     def repo(self):
         return self._repo
     def phasestr(self):
@@ -530,12 +532,15 @@ class changectx(basectx):
 
     @propertycache
     def _manifest(self):
-        return self._repo.manifestlog[self._changeset.manifest].read()
+        return self._manifestctx.read()
+
+    @propertycache
+    def _manifestctx(self):
+        return self._repo.manifestlog[self._changeset.manifest]
 
     @propertycache
     def _manifestdelta(self):
-        mfnode = self._changeset.manifest
-        return self._repo.manifestlog[mfnode].readdelta()
+        return self._manifestctx.readdelta()
 
     @propertycache
     def _parents(self):


More information about the Mercurial-devel mailing list