mercurial/manifest.py
changeset 29939 80be4436e4cc
parent 29938 a059b17352ef
child 29940 fa145a205a7f
equal deleted inserted replaced
29938:a059b17352ef 29939:80be4436e4cc
   991                 arraytext = array.array('c', text)
   991                 arraytext = array.array('c', text)
   992                 self._revlog._fulltextcache[self._node] = arraytext
   992                 self._revlog._fulltextcache[self._node] = arraytext
   993                 self._data = manifestdict(text)
   993                 self._data = manifestdict(text)
   994         return self._data
   994         return self._data
   995 
   995 
       
   996     def readfast(self):
       
   997         rl = self._revlog
       
   998         r = rl.rev(self._node)
       
   999         deltaparent = rl.deltaparent(r)
       
  1000         if deltaparent != revlog.nullrev and deltaparent in rl.parentrevs(r):
       
  1001             return self.readdelta()
       
  1002         return self.read()
       
  1003 
   996     def readdelta(self):
  1004     def readdelta(self):
   997         revlog = self._revlog
  1005         revlog = self._revlog
   998         if revlog._usemanifestv2:
  1006         if revlog._usemanifestv2:
   999             # Need to perform a slow delta
  1007             # Need to perform a slow delta
  1000             r0 = revlog.deltaparent(revlog.rev(self._node))
  1008             r0 = revlog.deltaparent(revlog.rev(self._node))
  1063             if n1:
  1071             if n1:
  1064                 md[f] = n1
  1072                 md[f] = n1
  1065                 if fl1:
  1073                 if fl1:
  1066                     md.setflag(f, fl1)
  1074                     md.setflag(f, fl1)
  1067         return md
  1075         return md
       
  1076 
       
  1077     def readfast(self):
       
  1078         rl = self._revlog
       
  1079         r = rl.rev(self._node)
       
  1080         deltaparent = rl.deltaparent(r)
       
  1081         if deltaparent != revlog.nullrev and deltaparent in rl.parentrevs(r):
       
  1082             return self.readdelta()
       
  1083         return self.read()
  1068 
  1084 
  1069 class manifest(manifestrevlog):
  1085 class manifest(manifestrevlog):
  1070     def __init__(self, opener, dir='', dirlogcache=None):
  1086     def __init__(self, opener, dir='', dirlogcache=None):
  1071         '''The 'dir' and 'dirlogcache' arguments are for internal use by
  1087         '''The 'dir' and 'dirlogcache' arguments are for internal use by
  1072         manifest.manifest only. External users should create a root manifest
  1088         manifest.manifest only. External users should create a root manifest
  1147                 _("readshallowdelta() not implemented for manifestv2"))
  1163                 _("readshallowdelta() not implemented for manifestv2"))
  1148         r = self.rev(node)
  1164         r = self.rev(node)
  1149         d = mdiff.patchtext(self.revdiff(self.deltaparent(r), r))
  1165         d = mdiff.patchtext(self.revdiff(self.deltaparent(r), r))
  1150         return manifestdict(d)
  1166         return manifestdict(d)
  1151 
  1167 
  1152     def readfast(self, node):
       
  1153         '''use the faster of readdelta or read
       
  1154 
       
  1155         This will return a manifest which is either only the files
       
  1156         added/modified relative to p1, or all files in the
       
  1157         manifest. Which one is returned depends on the codepath used
       
  1158         to retrieve the data.
       
  1159         '''
       
  1160         r = self.rev(node)
       
  1161         deltaparent = self.deltaparent(r)
       
  1162         if deltaparent != revlog.nullrev and deltaparent in self.parentrevs(r):
       
  1163             return self.readdelta(node)
       
  1164         return self.read(node)
       
  1165 
       
  1166     def readshallowfast(self, node):
  1168     def readshallowfast(self, node):
  1167         '''like readfast(), but calls readshallowdelta() instead of readdelta()
  1169         '''like readfast(), but calls readshallowdelta() instead of readdelta()
  1168         '''
  1170         '''
  1169         r = self.rev(node)
  1171         r = self.rev(node)
  1170         deltaparent = self.deltaparent(r)
  1172         deltaparent = self.deltaparent(r)