Sat, 26 Jan 2019 14:06:07 -0800 tests: add b'' to config file name
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 26 Jan 2019 14:06:07 -0800] rev 41412
tests: add b'' to config file name Without this, things die in the bowels of the config system due to mixing str and bytes. # skip-blame: just b'' prefix Differential Revision: https://phab.mercurial-scm.org/D5723
Sat, 26 Jan 2019 14:00:42 -0800 sslutil: ensure serverhostname is bytes when formatting
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 26 Jan 2019 14:00:42 -0800] rev 41411
sslutil: ensure serverhostname is bytes when formatting It will likely be a str on Python 3. Differential Revision: https://phab.mercurial-scm.org/D5722
Sat, 26 Jan 2019 13:58:58 -0800 sslutil: use raw strings for exception reason compare
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 26 Jan 2019 13:58:58 -0800] rev 41410
sslutil: use raw strings for exception reason compare Otherwise we attempt to compare a bytes to a str on Python 3 and it always fails. Differential Revision: https://phab.mercurial-scm.org/D5721
Sat, 26 Jan 2019 13:40:44 -0800 keepalive: track ready state with a bool
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 26 Jan 2019 13:40:44 -0800] rev 41409
keepalive: track ready state with a bool This code may have been written before Python had a bool type. Differential Revision: https://phab.mercurial-scm.org/D5719
Sat, 26 Jan 2019 13:39:18 -0800 keepalive: use collections.defaultdict for host map
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 26 Jan 2019 13:39:18 -0800] rev 41408
keepalive: use collections.defaultdict for host map Cleaning up the code as part of debugging Python 3 issues. Differential Revision: https://phab.mercurial-scm.org/D5718
Sat, 26 Jan 2019 10:57:17 -0800 statichttprepo: use str to appease Python 3
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 26 Jan 2019 10:57:17 -0800] rev 41407
statichttprepo: use str to appease Python 3 The URL fed into urllib and HTTP headers need to be str on Python 3. Differential Revision: https://phab.mercurial-scm.org/D5716
Sat, 26 Jan 2019 10:53:10 -0800 statichttprepo: use URLError.reason directly
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 26 Jan 2019 10:53:10 -0800] rev 41406
statichttprepo: use URLError.reason directly 0b3f4be5c5bf changed str(inst) to inst.reason[0] all the way back in 2006. URLError.reason is a str and we should have taken that attribute in its entirety. I think the code was supposed to be inst.args[1] for compatibility with ancient Python versions. Python 2.7 always sets .reason, so it should be safe to use directly. Differential Revision: https://phab.mercurial-scm.org/D5715
Sat, 26 Jan 2019 10:40:37 -0800 mail: document behavior of Python 3
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 26 Jan 2019 10:40:37 -0800] rev 41405
mail: document behavior of Python 3 test-notify.t (and possibly other tests) are failing on Python 3 because email.message.Message is now aware of encodings and attempts to roundtrip values with the specified message encoding. Python 2 doesn't perform this roundtripping. We have tests with non-ascii data being serialized to a message that claims to use ascii encoding. I /think/ Mercurial's behavior may be buggy here. But I'm not sure. I'm documenting the behavior so the next person who looks into this doesn't start from scratch like I did. Differential Revision: https://phab.mercurial-scm.org/D5714
Sat, 26 Jan 2019 10:22:09 -0800 notify: be more defensive aboute None values
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 26 Jan 2019 10:22:09 -0800] rev 41404
notify: be more defensive aboute None values encoding.strtolocal is the identity function on Python 2 but an actual string manipulation routine on Python 3. In some cases, we were passing None, which caused Python 3 to barf. Let's change the code to react properly when the value is None. Differential Revision: https://phab.mercurial-scm.org/D5713
Sat, 26 Jan 2019 10:00:17 -0800 wireprotov2server: use our JSON encoder
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 26 Jan 2019 10:00:17 -0800] rev 41403
wireprotov2server: use our JSON encoder Python's json module doesn't like to encode bytes instances. This makes this code difficult to work with Python 3. We simply swap in Mercurial's JSON encoder to work around it. Differential Revision: https://phab.mercurial-scm.org/D5712
(0) -30000 -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 +10000 tip