tests: fix test-match.py on Python3
# skip-blame just b prefixes
Differential Revision: https://phab.mercurial-scm.org/D5835
match: teach diffmatcher.visitdir() to return 'all' if possible
This patch teaches differencematcher.visitdir() to return 'all' when
m1.visitdir() returns 'all' and m2 does not matches.
Before this patch, from a differencematcher.visitdir(), we always returned
either True or False. We never returned 'all' even when we can. This causes
problem when m1 and m2 of a differencematcher are themselves differencematcher.
In that case, we try to check:
`if self._m2_.visitdir(dir) == 'all'`
which will never be 'all' even though it can be.
This leads to iterating over a lot of sub-directory manifest, even though we
don't want to while extending a narrow clone. I am yet to measure the impact of
this but calculating manifest was taking ~50-60 seconds, so this should
definitely save some of time there.
Differential Revision: https://phab.mercurial-scm.org/D5814
py3: use integer division instead of `int(...)` call
Changeset
38a82e0333c9 and
7f853549823b introduced explicit conversion to
integer to work around the division behavior change from python2 to python3.
Using the integer division operator is a simpler and clearer way to achieve
this.
py3: add some b'' prefixes in test-notify.t
# skip-blame as just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D5811
py3: use pycompat.long in hgext/convert/monotone.py
Differential Revision: https://phab.mercurial-scm.org/D5810
py3: add three new passing tests found by buildbot
Differential Revision: https://phab.mercurial-scm.org/D5809
py3: do a fsdecode(), fsencode() dance in posix.py
We have to use `fsdecode()` instead of sysstr() because they are abusing
`PyUnicode_EncodeFSDefault()` to get back bytes.
Differential Revision: https://phab.mercurial-scm.org/D5808