Thu, 01 Mar 2018 18:13:50 -0500 convert: fix two %r output formats with pycompat.bytestr() wrapping
Augie Fackler <augie@google.com> [Thu, 01 Mar 2018 18:13:50 -0500] rev 36560
convert: fix two %r output formats with pycompat.bytestr() wrapping Differential Revision: https://phab.mercurial-scm.org/D2529
Thu, 01 Mar 2018 17:48:06 -0500 convert: use our shlex wrapper in filemap to avoid Python 3 tracebacks
Augie Fackler <augie@google.com> [Thu, 01 Mar 2018 17:48:06 -0500] rev 36559
convert: use our shlex wrapper in filemap to avoid Python 3 tracebacks Differential Revision: https://phab.mercurial-scm.org/D2527
Thu, 01 Mar 2018 17:47:49 -0500 convcmd: use our shlex wrapper to avoid Python 3 tracebacks
Augie Fackler <augie@google.com> [Thu, 01 Mar 2018 17:47:49 -0500] rev 36558
convcmd: use our shlex wrapper to avoid Python 3 tracebacks Differential Revision: https://phab.mercurial-scm.org/D2526
Thu, 01 Mar 2018 17:47:35 -0500 convert: add some utility code for working with shlex on Python 3
Augie Fackler <augie@google.com> [Thu, 01 Mar 2018 17:47:35 -0500] rev 36557
convert: add some utility code for working with shlex on Python 3 This could have gone in pycompat, but it's only needed in convert, so I figured it made more sense here. It's got py3 in the name and checks pycompat.ispy3, so we'll find it whenever we decide to drop Python 2 support in 20x6. # no-check-commit because of required foo_bar naming on the proxy class Differential Revision: https://phab.mercurial-scm.org/D2525
Thu, 01 Mar 2018 17:46:34 -0500 pycompat: add support for encoding argument to our wrapper
Augie Fackler <augie@google.com> [Thu, 01 Mar 2018 17:46:34 -0500] rev 36556
pycompat: add support for encoding argument to our wrapper This only works on Python 3, but I'm about to need it for a regrettable hack in the convert code. Differential Revision: https://phab.mercurial-scm.org/D2524
Fri, 02 Mar 2018 04:49:08 +0530 py3: port tests/test-wireproto.py to Python 3
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 02 Mar 2018 04:49:08 +0530] rev 36555
py3: port tests/test-wireproto.py to Python 3 Differential Revision: https://phab.mercurial-scm.org/D2534
Fri, 02 Mar 2018 04:47:56 +0530 py3: use pycompat.bytestr() to convert None to bytes
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 02 Mar 2018 04:47:56 +0530] rev 36554
py3: use pycompat.bytestr() to convert None to bytes Differential Revision: https://phab.mercurial-scm.org/D2533
Thu, 01 Mar 2018 18:39:21 -0500 webcommands: use explicit integer division for Python 3 compat
Augie Fackler <augie@google.com> [Thu, 01 Mar 2018 18:39:21 -0500] rev 36553
webcommands: use explicit integer division for Python 3 compat Differential Revision: https://phab.mercurial-scm.org/D2532
Fri, 02 Mar 2018 04:59:27 +0530 templatefilters: stop using str as a variable name
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 02 Mar 2018 04:59:27 +0530] rev 36552
templatefilters: stop using str as a variable name str() is an inbuilt function. Differential Revision: https://phab.mercurial-scm.org/D2531
Thu, 01 Mar 2018 18:15:58 -0500 py3: fix string slicing in util.parsetimezone()
Yuya Nishihara <yuya@tcha.org> [Thu, 01 Mar 2018 18:15:58 -0500] rev 36551
py3: fix string slicing in util.parsetimezone()
Thu, 01 Mar 2018 18:06:25 -0500 py3: replace type 'str' by 'bytes' in templater.py
Yuya Nishihara <yuya@tcha.org> [Thu, 01 Mar 2018 18:06:25 -0500] rev 36550
py3: replace type 'str' by 'bytes' in templater.py
Thu, 01 Mar 2018 17:56:32 -0500 py3: don't crash when re-raising encoding error
Yuya Nishihara <yuya@tcha.org> [Thu, 01 Mar 2018 17:56:32 -0500] rev 36549
py3: don't crash when re-raising encoding error
Thu, 01 Mar 2018 17:43:25 -0500 py3: mark all string literals in test-command-template.t as bytes
Yuya Nishihara <yuya@tcha.org> [Thu, 01 Mar 2018 17:43:25 -0500] rev 36548
py3: mark all string literals in test-command-template.t as bytes # skip-blame because just b'' prefixes
Thu, 01 Mar 2018 17:03:40 -0500 py3: byte-stringify ValueError of unescapestr() to reraise as ParseError
Yuya Nishihara <yuya@tcha.org> [Thu, 01 Mar 2018 17:03:40 -0500] rev 36547
py3: byte-stringify ValueError of unescapestr() to reraise as ParseError
Thu, 01 Mar 2018 16:56:38 -0500 py3: fix type of string literals in templater.tokenize()
Yuya Nishihara <yuya@tcha.org> [Thu, 01 Mar 2018 16:56:38 -0500] rev 36546
py3: fix type of string literals in templater.tokenize() # skip-blame because just b'' prefixes
Thu, 01 Mar 2018 16:52:17 -0500 py3: drop b'' from error message generated by templater.runmember()
Yuya Nishihara <yuya@tcha.org> [Thu, 01 Mar 2018 16:52:17 -0500] rev 36545
py3: drop b'' from error message generated by templater.runmember()
Thu, 01 Mar 2018 16:42:24 -0500 py3: fix join(), min(), and max() template functions over string
Yuya Nishihara <yuya@tcha.org> [Thu, 01 Mar 2018 16:42:24 -0500] rev 36544
py3: fix join(), min(), and max() template functions over string It's silly to split a string into characters and concatenate them, but that should work and test-command-template.t has one. min() and max() had the same issue on Python 3, so fixed too.
Thu, 01 Mar 2018 16:32:45 -0500 py3: use startswith() to check existence of trailing '\n' in .hgtags file
Yuya Nishihara <yuya@tcha.org> [Thu, 01 Mar 2018 16:32:45 -0500] rev 36543
py3: use startswith() to check existence of trailing '\n' in .hgtags file
Thu, 01 Mar 2018 15:57:27 -0500 py3: silence return value of file.write() in test-command-template.t
Yuya Nishihara <yuya@tcha.org> [Thu, 01 Mar 2018 15:57:27 -0500] rev 36542
py3: silence return value of file.write() in test-command-template.t
Thu, 01 Mar 2018 18:05:47 -0500 error: fix isinstnace check to use bytes instead of str
Augie Fackler <augie@google.com> [Thu, 01 Mar 2018 18:05:47 -0500] rev 36541
error: fix isinstnace check to use bytes instead of str Differential Revision: https://phab.mercurial-scm.org/D2528
Sun, 25 Feb 2018 22:43:50 -0500 py3: whitelist another nine passing tests
Augie Fackler <augie@google.com> [Sun, 25 Feb 2018 22:43:50 -0500] rev 36540
py3: whitelist another nine passing tests I now see 347 tests passing[0] and 336 failing, so we're past halfway there. Hooray! 0: A few tests appear to regress in small ways (doctest output changes, for example) on Python 3.7.0a1, which is what I'm now using to test. That said, I'm pleased to report no major regressions. Differential Revision: https://phab.mercurial-scm.org/D2439
Sun, 25 Feb 2018 22:31:13 -0500 util: use pycompat.bytestr() on repr() in date parse abort
Augie Fackler <augie@google.com> [Sun, 25 Feb 2018 22:31:13 -0500] rev 36539
util: use pycompat.bytestr() on repr() in date parse abort Avoids the b'' prefix. Differential Revision: https://phab.mercurial-scm.org/D2438
Fri, 02 Mar 2018 03:06:43 +0530 py3: whitelist 14 new tests passing
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 02 Mar 2018 03:06:43 +0530] rev 36538
py3: whitelist 14 new tests passing 12 new tests passed because of parent changeset and 2 were passing before that too. Differential Revision: https://phab.mercurial-scm.org/D2523
Fri, 02 Mar 2018 02:44:49 +0530 py3: slice over bytes to prevent getting ascii values
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 02 Mar 2018 02:44:49 +0530] rev 36537
py3: slice over bytes to prevent getting ascii values This fixed reading of mergestate files and fixes 14 tests on Python 3. Differential Revision: https://phab.mercurial-scm.org/D2522
Tue, 27 Feb 2018 14:26:00 -0800 wireprotoserver: move SSHV1 and SSHV2 constants to wireprototypes
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 27 Feb 2018 14:26:00 -0800] rev 36536
wireprotoserver: move SSHV1 and SSHV2 constants to wireprototypes To avoid a cycle between modules in an upcoming commit. Differential Revision: https://phab.mercurial-scm.org/D2482
Tue, 27 Feb 2018 14:21:29 -0800 wireproto: use named arguments for commandentry
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 27 Feb 2018 14:21:29 -0800] rev 36535
wireproto: use named arguments for commandentry We'll be adding more arguments in upcoming commits. Using named arguments will make the code easier to read. Differential Revision: https://phab.mercurial-scm.org/D2481
Mon, 26 Feb 2018 18:01:13 -0800 debugcommands: support for triggering push protocol
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 26 Feb 2018 18:01:13 -0800] rev 36534
debugcommands: support for triggering push protocol The mechanism for pushing to a remote is a bit more complicated than other commands. On SSH, we wait for a positive reply from the server before we start sending the bundle payload. This commit adds a mechanism to the "command" action in `hg debugwireproto` to trigger the "push protocol" and to specify a file whose contents should be submitted as the command payload. With this new feature, we implement a handful of tests for the "unbundle" command. We try to cover various server failures and hook/output scenarios so protocol behavior is as comprehensively tested as possible. Even with so much test output, we only cover bundle1 with Python hooks. There's still a lot of test coverage that needs to be implemented. But this is certainly a good start. Because there are so many new tests, we split these tests into their own test file. In order to make output deterministic, we need to disable the doublepipe primitive. We add an option to `hg debugwireproto` to do that. Because something in the bowels of the peer does a read of stderr, we still capture read I/O from stderr. So there is test coverage of what the server emits. The tests around I/O capture some wonkiness. For example, interleaved ui.write() and ui.write_err() calls are emitted in order. However, (presumably due to buffering), print() to sys.stdout and sys.stderr aren't in order. We currently only test bundle1 because bundle2 is substantially harder to test because it is more complicated (the server responds with a stream containing a bundle2 instead of a frame). Differential Revision: https://phab.mercurial-scm.org/D2471
Mon, 26 Feb 2018 13:12:03 -0800 sshpeer: support not reading and forwarding stderr
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 26 Feb 2018 13:12:03 -0800] rev 36533
sshpeer: support not reading and forwarding stderr The "doublepipe" primitive as used by sshpeer will automatically read from stderr and forward output to the local ui. This poses problems for deterministic testing because reads may not be consistent. For example, the server may not be done sending all output to stderr and the client will perform different numbers of read operations or will read from stderr and stdout at different times. To make tests deterministic, we'll need to disable the "doublepipe" primitive and perform stderr I/O explicitly. We add an argument to the sshpeer constructor to disable the use of the doublepipe. Differential Revision: https://phab.mercurial-scm.org/D2467
Fri, 23 Feb 2018 16:03:27 -0800 tests: add wire protocol tests for pushkey
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 23 Feb 2018 16:03:27 -0800] rev 36532
tests: add wire protocol tests for pushkey Let's get the wire format of some pushkey requests in test-ssh-proto.t. Differential Revision: https://phab.mercurial-scm.org/D2466
Fri, 23 Feb 2018 12:50:59 -0800 debugcommands: support for sending "batch" requests
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 23 Feb 2018 12:50:59 -0800] rev 36531
debugcommands: support for sending "batch" requests Let's teach `hg debugwireproto` to send "batch" requests. The easiest way to implement this was as a pair of instructions to begin and end a batched operation. Otherwise, we would have to reinvent the parsing wheel or factor out the parsing code. To prove it works, we add a batched request to test-ssh-proto.t. Differential Revision: https://phab.mercurial-scm.org/D2408
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip