sapling/tests/test-fb-hgext-treemanifest-sparse.t
Martijn Pieters 3b4b3d8cbb sparse: make use of matchers for faster path listing
Summary:
The current code iterates over all files in the manifest, filtering against a prefix.

But a manifest supports using a matcher directly, and efficient implementations like the treemanifest will prune the tree to a much smaller subset rapidly based on the path in a matcher. Switching to using a matcher dramatically improves --cwd-list performance in fbsource, when treemanifests are available.

Reviewed By: quark-zju

Differential Revision: D7056650

fbshipit-source-id: 2bf62ea93680323a49c9282266118805881d7b02
2018-04-13 21:51:21 -07:00

53 lines
1.1 KiB
Perl

test interaction between sparse and treemanifest (sparse file listing)
$ cat >> $HGRCPATH <<EOF
> [extensions]
> sparse=$TESTDIR/../hgext/fbsparse.py
> treemanifest=
> [treemanifest]
> treeonly = True
> [remotefilelog]
> reponame = master
> cachepath = $PWD/hgcache
> EOF
Setup the repository
$ hg init myrepo
$ cd myrepo
$ touch show
$ touch hide
$ mkdir -p subdir/foo/spam subdir/bar/ham hiddensub/foo hiddensub/bar
$ touch subdir/foo/spam/show
$ touch subdir/bar/ham/hide
$ touch hiddensub/foo/spam
$ touch hiddensub/bar/ham
$ hg add .
adding hiddensub/bar/ham
adding hiddensub/foo/spam
adding hide
adding show
adding subdir/bar/ham/hide
adding subdir/foo/spam/show
$ hg commit -m 'Init'
$ hg sparse --include show
$ hg sparse --exclude hide
$ hg sparse --include subdir
$ hg sparse --exclude subdir/foo
Test --cwd-list
$ hg sparse --cwd-list
- hiddensub
- hide
show
subdir
$ cd subdir
$ hg sparse --cwd-list
bar
- foo
$ hg sparse --include foo
$ hg sparse --cwd-list
bar
- foo