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.
# mq patch on an empty repo
tip: 0
No .hg/branch.cache
tip: 0
No .hg/branch.cache
# some regular revisions
Patch queue now empty
tip: 1
3f910abad313ff802d3a23a7529433872df9b3ae 1
3f910abad313ff802d3a23a7529433872df9b3ae bar
9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo
# add some mq patches
applying p1
Now at: p1
tip: 2
3f910abad313ff802d3a23a7529433872df9b3ae 1
3f910abad313ff802d3a23a7529433872df9b3ae bar
9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo
tip: 3
3f910abad313ff802d3a23a7529433872df9b3ae 1
3f910abad313ff802d3a23a7529433872df9b3ae bar
9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo
branch foo: 3
branch bar: 2
# removing the cache
tip: 3
3f910abad313ff802d3a23a7529433872df9b3ae 1
3f910abad313ff802d3a23a7529433872df9b3ae bar
9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo
branch foo: 3
branch bar: 2
# importing rev 1 (the cache now ends in one of the patches)
tip: 3
3f910abad313ff802d3a23a7529433872df9b3ae 1
3f910abad313ff802d3a23a7529433872df9b3ae bar
9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo
branch foo: 3
branch bar: 2
qbase: 1
# detect an invalid cache
Patch queue now empty
applying p0
applying p1
applying p2
Now at: p2
tip: 3
9539f35bdc80732cc9a3f84e46508f1ed1ec8cff 0
9539f35bdc80732cc9a3f84e46508f1ed1ec8cff foo