This is an archive of the discontinued Mercurial Phabricator instance.

commit: rewrite check for `hg ci <path>` being a directory
ClosedPublic

Authored by martinvonz on Nov 15 2019, 7:34 PM.

Details

Summary

The matcher API is complicated by match.bad, match.explicitdir, and
match.traversedir. We already have very few users of
match.explicitdir. By rewriting this check we get close to being able
to remove match.explicitdir.

This may make the check slower, but I think that will be very
marginal.

Disclosure: I actually wrote this patch to solve a bug we've seen with
an internal extension. The internal extension overrides the dirstate
walk to only walk the files that our FUSE tells us are modified. That
led to "vdirs" not getting populated as this code expected. I have
wanted to get rid of match.explicitdir for a very long time, though.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.