1607 |
1607 |
1608 In this situation, 'manifest' refers to the abstract concept of a snapshot |
1608 In this situation, 'manifest' refers to the abstract concept of a snapshot |
1609 of the list of files in the given commit. Consumers of the output of this |
1609 of the list of files in the given commit. Consumers of the output of this |
1610 class do not care about the implementation details of the actual manifests |
1610 class do not care about the implementation details of the actual manifests |
1611 they receive (i.e. tree or flat or lazily loaded, etc).""" |
1611 they receive (i.e. tree or flat or lazily loaded, etc).""" |
1612 def __init__(self, opener, repo): |
1612 def __init__(self, opener, repo, rootstore): |
1613 usetreemanifest = False |
1613 usetreemanifest = False |
1614 cachesize = 4 |
1614 cachesize = 4 |
1615 |
1615 |
1616 opts = getattr(opener, 'options', None) |
1616 opts = getattr(opener, 'options', None) |
1617 if opts is not None: |
1617 if opts is not None: |
1618 usetreemanifest = opts.get('treemanifest', usetreemanifest) |
1618 usetreemanifest = opts.get('treemanifest', usetreemanifest) |
1619 cachesize = opts.get('manifestcachesize', cachesize) |
1619 cachesize = opts.get('manifestcachesize', cachesize) |
1620 |
1620 |
1621 self._treemanifests = usetreemanifest |
1621 self._treemanifests = usetreemanifest |
1622 |
1622 |
1623 self._rootstore = repo._constructmanifest() |
1623 self._rootstore = rootstore |
1624 self._rootstore._setupmanifestcachehooks(repo) |
1624 self._rootstore._setupmanifestcachehooks(repo) |
1625 self._narrowmatch = repo.narrowmatch() |
1625 self._narrowmatch = repo.narrowmatch() |
1626 |
1626 |
1627 # A cache of the manifestctx or treemanifestctx for each directory |
1627 # A cache of the manifestctx or treemanifestctx for each directory |
1628 self._dirmancache = {} |
1628 self._dirmancache = {} |