##// END OF EJS Templates
narrow: move manifestrevlog overrides to core...
Martin von Zweigbergk -
r37391:c50078fc default
parent child Browse files
Show More
@@ -50,11 +50,6 b' def wraprepo(repo):'
50
50
51 class narrowrepository(repo.__class__):
51 class narrowrepository(repo.__class__):
52
52
53 def _constructmanifest(self):
54 manifest = super(narrowrepository, self)._constructmanifest()
55 narrowrevlog.makenarrowmanifestrevlog(manifest, repo)
56 return manifest
57
58 @cacheprop('00manifest.i')
53 @cacheprop('00manifest.i')
59 def manifestlog(self):
54 def manifestlog(self):
60 mfl = super(narrowrepository, self).manifestlog
55 mfl = super(narrowrepository, self).manifestlog
@@ -30,24 +30,6 b' def setup():'
30 # load time.
30 # load time.
31 pass
31 pass
32
32
33 def makenarrowmanifestrevlog(mfrevlog, repo):
34 if util.safehasattr(mfrevlog, '_narrowed'):
35 return
36
37 class narrowmanifestrevlog(mfrevlog.__class__):
38 # This function is called via debug{revlog,index,data}, but also during
39 # at least some push operations. This will be used to wrap/exclude the
40 # child directories when using treemanifests.
41 def dirlog(self, d):
42 if not repo.narrowmatch().visitdir(d[:-1] or '.'):
43 return manifest.excludedmanifestrevlog(d)
44 result = super(narrowmanifestrevlog, self).dirlog(d)
45 makenarrowmanifestrevlog(result, repo)
46 return result
47
48 mfrevlog.__class__ = narrowmanifestrevlog
49 mfrevlog._narrowed = True
50
51 def makenarrowmanifestlog(mfl, repo):
33 def makenarrowmanifestlog(mfl, repo):
52 class narrowmanifestlog(mfl.__class__):
34 class narrowmanifestlog(mfl.__class__):
53 def get(self, dir, node, verify=True):
35 def get(self, dir, node, verify=True):
@@ -1279,6 +1279,7 b' class manifestlog(object):'
1279 self._treeinmem = usetreemanifest
1279 self._treeinmem = usetreemanifest
1280
1280
1281 self._revlog = repo._constructmanifest()
1281 self._revlog = repo._constructmanifest()
1282 self._narrowmatch = repo.narrowmatch()
1282
1283
1283 # A cache of the manifestctx or treemanifestctx for each directory
1284 # A cache of the manifestctx or treemanifestctx for each directory
1284 self._dirmancache = {}
1285 self._dirmancache = {}
@@ -1477,6 +1478,10 b' class treemanifestctx(object):'
1477 #self.linkrev = revlog.linkrev(rev)
1478 #self.linkrev = revlog.linkrev(rev)
1478
1479
1479 def _revlog(self):
1480 def _revlog(self):
1481 narrowmatch = self._manifestlog._narrowmatch
1482 if not narrowmatch.always():
1483 if not narrowmatch.visitdir(self._dir[:-1] or '.'):
1484 return excludedmanifestrevlog(self._dir)
1480 return self._manifestlog._revlog.dirlog(self._dir)
1485 return self._manifestlog._revlog.dirlog(self._dir)
1481
1486
1482 def read(self):
1487 def read(self):
General Comments 0
You need to be logged in to leave comments. Login now