##// END OF EJS Templates
match: add visitchildrenset complement to visitdir...
match: add visitchildrenset complement to visitdir `visitdir(d)` lets a caller query whether the directory is part of the matcher. It can receive a response of 'all' (yes, and all children, you can stop calling visitdir now), False (no, and no children either), or True (yes, either something in this directory or a child is part of the matcher). `visitchildrenset(d)` augments that by instead of returning True, it returns a list of items to actually investigate. With this, code can be modified from: for f in self.all_items: if match.visitdir(self.dir + '/' + f): <do stuff> to be: for f in self.all_items.intersect(match.visitchildrenset(self.dir)): <do stuff> use of this function can provide significant performance improvements, especially when using narrow (so that the matcher is much smaller than the stuff we see on disk) and/or treemanifests (so that we can avoid loading manifests for trees that aren't part of the matcher). Differential Revision: https://phab.mercurial-scm.org/D4130
spectral -
r38990:081cc9a9 default
Show More
Name Size Modified Last Commit Author
/ mercurial / cext
__init__.py Loading ...
base85.c Loading ...
bdiff.c Loading ...
charencode.c Loading ...
charencode.h Loading ...
dirs.c Loading ...
manifest.c Loading ...
mpatch.c Loading ...
osutil.c Loading ...
parsers.c Loading ...
pathencode.c Loading ...
revlog.c Loading ...
util.h Loading ...