narrow: extract wdir cleanup function to make it extensible
We have an overlay filesystem which shows the entire repository, and unlinking
a file that's in the underlying data store will create "tombstone" entries,
which are going to cause our automatic tracking to re-add these directories. We
need to use a different (non-posix) interface to clean up items in the working
directory that are no longer relevant.
Extracting this to a function lets us use extensions.wrappedfunction and perform
this cleanup work, even if the paths aren't in the dirstate (they may have been
removed in the past and thus entirely "tombstone" entries already, part of
hgignore, exclusively directories (possibly empty), or other edge cases).
Differential Revision: https://phab.mercurial-scm.org/D4681
changegroup: reintroduce some comments that have gotten lost over the years
I got concerned about the correctness of the pruning logic, but I was
misreading it. I didn't figure that out until I walked all the way
back to
0252abaafb8a from 20111, where I was finally able to see (in
the deleted side of the change!) a complete explanation from
b6d9ea0bc107 in 2005.
Differential Revision: https://phab.mercurial-scm.org/D4686
changegroup: tease out a temporary prune method for manifests
It's extracted so extensions can filter manifest nodes if needed. This
is an unfortunate hack, but I think I only need it for manifests. The
long-term solution will be to rework the relationship between
changegroups and storage so that this isn't required.
Differential Revision: https://phab.mercurial-scm.org/D4685
changegroup: remove outdated comment
Differential Revision: https://phab.mercurial-scm.org/D4684
py3: encode the name to bytes before using in revsetpredicate()
Differential Revision: https://phab.mercurial-scm.org/D4677
py3: suppress the output on .write() calls in tests/test-hgweb-commands.t
Differential Revision: https://phab.mercurial-scm.org/D4676
py3: use stringutil.pprint() to print boolean values
Differential Revision: https://phab.mercurial-scm.org/D4675
py3: add a missing b'' in tests/test-newercgi.t
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D4674
py3: use pycompat.maplist instead of map
Differential Revision: https://phab.mercurial-scm.org/D4673
py3: add some b'' prefixes in tests/test-extension.t
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D4672
py3: make tests/svn-safe-append.py compatible with python 3
Differential Revision: https://phab.mercurial-scm.org/D4671