mercurial/manifest.py
changeset 30369 d79c141fdf41
parent 30368 ed45283a0ca7
child 30370 10c924596e5c
equal deleted inserted replaced
30368:ed45283a0ca7 30369:d79c141fdf41
  1592         if dir not in self._dirlogcache:
  1592         if dir not in self._dirlogcache:
  1593             self._dirlogcache[dir] = manifest(self.opener, dir,
  1593             self._dirlogcache[dir] = manifest(self.opener, dir,
  1594                                               self._dirlogcache)
  1594                                               self._dirlogcache)
  1595         return self._dirlogcache[dir]
  1595         return self._dirlogcache[dir]
  1596 
  1596 
  1597     def read(self, node):
       
  1598         if node == revlog.nullid:
       
  1599             return self._newmanifest() # don't upset local cache
       
  1600         if node in self._mancache:
       
  1601             cached = self._mancache[node]
       
  1602             if (isinstance(cached, manifestctx) or
       
  1603                 isinstance(cached, treemanifestctx)):
       
  1604                 cached = cached.read()
       
  1605             return cached
       
  1606         if self._treeondisk:
       
  1607             def gettext():
       
  1608                 return self.revision(node)
       
  1609             def readsubtree(dir, subm):
       
  1610                 return self.dirlog(dir).read(subm)
       
  1611             m = self._newmanifest()
       
  1612             m.read(gettext, readsubtree)
       
  1613             m.setnode(node)
       
  1614             arraytext = None
       
  1615         else:
       
  1616             text = self.revision(node)
       
  1617             m = self._newmanifest(text)
       
  1618             arraytext = array.array('c', text)
       
  1619         self._mancache[node] = m
       
  1620         if arraytext is not None:
       
  1621             self.fulltextcache[node] = arraytext
       
  1622         return m
       
  1623 
       
  1624     def clearcaches(self):
  1597     def clearcaches(self):
  1625         super(manifest, self).clearcaches()
  1598         super(manifest, self).clearcaches()
  1626         self._mancache.clear()
  1599         self._mancache.clear()