path_auditor: cache names of audited directories
We use a separate cache to avoid problems with
audit = path_auditor(repo.root)
audit("subrepo")
audit("subrepo/file")
whitelisting "subrepo" (which is fine) and then using the same whitelist
with "subrepo/file" (which is not fine).
Since we create a separate path_auditor for every path on the command line,
a "hg add dir/a dir/b dir/c" will still lstat dir 3 times just to audit
the paths.
#!/bin/sh
hg init a
cd a
echo a > foo
hg rm foo
hg add foo
hg commit -m 1 -d "1000000 0"
hg remove
rm foo
hg remove foo
hg revert --all
rm foo
hg remove --after
hg commit -m 2 -d "1000000 0"
hg export --nodates 0
hg export --nodates 1
hg log -p -r 0
hg log -p -r 1
echo a > a
hg add a
hg rm a
hg rm -f a
echo b > b
mkdir c
echo d > c/d
hg ci -A -m 3 -d "1000001 0"
echo c >> b
hg rm b
hg rm -f b
hg rm -A c/d
hg st
cat c/d
hg revert c
hg rm -A
hg st
hg rm -A c
hg st
rm c/d
hg rm -A
hg st
cd ..
hg clone a b