py3: tweak stdout writing in test-hgweb-no-path-info.t
We want to write bytes for convenience. This requires sys.stdout.buffer.
But using sys.stdout.buffer introducing buffered output. So we sprinkle
code with sys.stdout.flush() to force immediate writes.
After all that, Python 3 was emitting b'' prefixed output for errors.
So we only print errors if there were some. There aren't, so b'' don't
come into play and output is identical in Python 2 and 3.
Differential Revision: https://phab.mercurial-scm.org/D4972
py3: use .+ instead of .* in regexp pattern
Python 3.7 changed the behavior of re.sub(). See
https://bugs.python.org/
issue33585.
The new code should work on old and new Pythons.
Differential Revision: https://phab.mercurial-scm.org/D4971
py3: coerce bytestr to bytes to appease urllib.parse.quote_from_bytes()
Differential Revision: https://phab.mercurial-scm.org/D4969
py3: pass str and return bytes from mimetypes.guess_type()
This function wants a str (which represents a path) and returns a str.
We normalize input to str and output to bytes.
Differential Revision: https://phab.mercurial-scm.org/D4967
py3: use bytes literal in test-hgweb-json.t
# skip-blame just b'' prefix
Differential Revision: https://phab.mercurial-scm.org/D4970
py3: convert diff opcode name to bytes
Differential Revision: https://phab.mercurial-scm.org/D4968
py3: byteify hgweberror.py
# skip-blame just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D4966
py3: encode JSON str to bytes
json.dumps() will emit UTF-8 str on Python 2 and 3. Use sysbytes to
force the .encode('utf-8') on Python 3 and no-op on Python 2.
Differential Revision: https://phab.mercurial-scm.org/D4965
py3: use b'' in test-check-interfaces.py
# skip-blame just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D4964
revlog: optimize ancestors() to not check filtered revisions for each
While reviewing the Rust implementation, I noticed iter(ancestors) doesn't
need to check filtering state for each parent revision. And doing that appears
to have some measurable perf win.
$ hg perfancestors -R mercurial
(orig) wall 0.038093 comb 0.040000 user 0.040000 sys 0.000000 (best of 100)
(this) wall 0.024795 comb 0.020000 user 0.020000 sys 0.000000 (best of 117)