mercurial/manifest.py
changeset 30340 608ba935e041
parent 30338 b0ca939414ea
child 30341 3dfb5a0171c9
equal deleted inserted replaced
30339:6cdfb7e15a35 30340:608ba935e041
  1392 
  1392 
  1393         r = revlog.rev(self._node)
  1393         r = revlog.rev(self._node)
  1394         d = mdiff.patchtext(revlog.revdiff(revlog.deltaparent(r), r))
  1394         d = mdiff.patchtext(revlog.revdiff(revlog.deltaparent(r), r))
  1395         return manifestdict(d)
  1395         return manifestdict(d)
  1396 
  1396 
       
  1397     def find(self, key):
       
  1398         return self.read().find(key)
       
  1399 
  1397 class treemanifestctx(object):
  1400 class treemanifestctx(object):
  1398     def __init__(self, repo, dir, node):
  1401     def __init__(self, repo, dir, node):
  1399         self._repo = repo
  1402         self._repo = repo
  1400         self._dir = dir
  1403         self._dir = dir
  1401         self._data = None
  1404         self._data = None
  1484         if shallow:
  1487         if shallow:
  1485             return manifestdict(rl.revision(self._node))
  1488             return manifestdict(rl.revision(self._node))
  1486         else:
  1489         else:
  1487             return self.read()
  1490             return self.read()
  1488 
  1491 
       
  1492     def find(self, key):
       
  1493         return self.read().find(key)
       
  1494 
  1489 class manifest(manifestrevlog):
  1495 class manifest(manifestrevlog):
  1490     def __init__(self, opener, dir='', dirlogcache=None):
  1496     def __init__(self, opener, dir='', dirlogcache=None):
  1491         '''The 'dir' and 'dirlogcache' arguments are for internal use by
  1497         '''The 'dir' and 'dirlogcache' arguments are for internal use by
  1492         manifest.manifest only. External users should create a root manifest
  1498         manifest.manifest only. External users should create a root manifest
  1493         log with manifest.manifest(opener) and call dirlog() on it.
  1499         log with manifest.manifest(opener) and call dirlog() on it.
  1546         self._mancache[node] = m
  1552         self._mancache[node] = m
  1547         if arraytext is not None:
  1553         if arraytext is not None:
  1548             self.fulltextcache[node] = arraytext
  1554             self.fulltextcache[node] = arraytext
  1549         return m
  1555         return m
  1550 
  1556 
  1551     def find(self, node, f):
       
  1552         '''look up entry for a single file efficiently.
       
  1553         return (node, flags) pair if found, (None, None) if not.'''
       
  1554         m = self.read(node)
       
  1555         try:
       
  1556             return m.find(f)
       
  1557         except KeyError:
       
  1558             return None, None
       
  1559 
       
  1560     def clearcaches(self):
  1557     def clearcaches(self):
  1561         super(manifest, self).clearcaches()
  1558         super(manifest, self).clearcaches()
  1562         self._mancache.clear()
  1559         self._mancache.clear()