- Mar 03, 2018
-
-
Augie Fackler authored
Somehow these are only caught when running the test under Python 3. Differential Revision: https://phab.mercurial-scm.org/D2580
-
- Feb 26, 2018
-
-
Pulkit Goyal authored
pycompat.py has functions strurl and bytesurl which decodes and encodes the url passed on Python 3 respectively. In some cases, strurl gets a url which is already str and bytesurl gets a url which is already bytes. Let's prevent encoding or decoding the values again if not required. Differential Revision: https://phab.mercurial-scm.org/D2472
-
- Mar 03, 2018
-
-
Yuya Nishihara authored
-
Yuya Nishihara authored
-
Yuya Nishihara authored
-
Yuya Nishihara authored
-
Yuya Nishihara authored
-
Yuya Nishihara authored
-
Yuya Nishihara authored
Fixes the following test failure: $ hg status >/dev/full abort: No space left on device Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' ... OSError: [Errno 28] No space left on device [120]
-
Yuya Nishihara authored
Since Python 3 doesn't depend on the stdio of libc, there should be no need to set O_BINARY flag on Windows.
-
- Mar 01, 2018
-
-
Yuya Nishihara authored
Python 3 also reports the position where an invalid escape found.
-
Yuya Nishihara authored
bytestr() is applied only when no custom format string like '%d' is specified.
-
Yuya Nishihara authored
'%s' doesn't work nicely on Python 3 because many Python types don't implement __bytes__().
-
- Mar 03, 2018
-
-
Pulkit Goyal authored
Differential Revision: https://phab.mercurial-scm.org/D2585
-
Gregory Szorc authored
Python 2 sometimes returns None from write() calls. Python 3 doesn't. This will make test output inconsistent between Python 2 and 3. So let's paper over the differences by converting None to the length of the result string. Differential Revision: https://phab.mercurial-scm.org/D2584
-
Gregory Szorc authored
Differential Revision: https://phab.mercurial-scm.org/D2583
-
Gregory Szorc authored
re.map doesn't seem to know about bytearray (at least in Python 2). Cast bytearray to a bytes to work around this inconvenience. Differential Revision: https://phab.mercurial-scm.org/D2582
-
Gregory Szorc authored
read(0) is essentially a no-op. Let's avoid the function call, overhead, and extra test output by not performing it. Differential Revision: https://phab.mercurial-scm.org/D2581
-
Yuya Nishihara authored
Please make sure to build C extensions before running tests with -l: $ make local PYTHON=python3
-
Yuya Nishihara authored
# skip-blame just some b prefixes
-
Yuya Nishihara authored
This doesn't look nice, but I don't know how to make a zero-copy slice of bytes which is compatible with the buffer protocol.
-
Yuya Nishihara authored
-
Yuya Nishihara authored
Spotted by map() of Python 3.
-
Yuya Nishihara authored
I really don't like the division operator of Python 3 since I'm not doing a math.
-
Yuya Nishihara authored
Just for clarity.
-
Yuya Nishihara authored
Perhaps we need this because 's' accepts a unicode string. https://docs.python.org/3/c-api/arg.html#strings-and-buffers Substituted using the following pattern with some manual fixes: '\b(PyArg_ParseTuple)\((\s*\w+,\s*)"([^"]+)"' '\b(PyArg_ParseTupleAndKeywords)\((\s*\w+,\s*\w+,\s*)"([^"]+)"'
-
Yuya Nishihara authored
On Python 3, "s" means a utf-8 string. We have to use "y" for bytes, sigh. https://docs.python.org/3/c-api/arg.html#c.Py_BuildValue Substituted using the following pattern with some manual fixes: '\b(Py_BuildValue)\((\s*)"([^"]+)"'
-
Yuya Nishihara authored
I have no better idea to work around the bytes-unicode divergence of Py_BuildValue(). Maybe we can write a code transformer for C extensions? :)
-
Yuya Nishihara authored
-
- Mar 02, 2018
-
-
Augie Fackler authored
# skip-blame just some b prefixes Differential Revision: https://phab.mercurial-scm.org/D2570
-
- Feb 28, 2018
-
-
Gregory Szorc authored
We recently marked other legacy commands as only available to version 1 of the wire protocols. We held off marking "between" because it is used as part of the SSH handshake. Since SSH servers assume they are version 1 by default and the "between" request that is issued as part of the version 2 handshake is swallowed and not operated on, everything should "just work" if "between" is not available to version 2. Differential Revision: https://phab.mercurial-scm.org/D2513
-
- Mar 02, 2018
-
-
Gregory Szorc authored
The previous tests around hook output only tested Python hooks. Let's add some shell hooks in for additional test coverage. Differential Revision: https://phab.mercurial-scm.org/D2550
-
- Feb 28, 2018
-
-
Gregory Szorc authored
We add a method to the protocol handler interface that allows specific implementations to add their own capabilities. The SSH implementation is a no-op. The HTTP implementation adds the HTTP-specific capabilities. The end result is transport specific capabilities now live in the transport code instead of in some generic function in the wireproto module. Differential Revision: https://phab.mercurial-scm.org/D2512
-
- Feb 27, 2018
-
-
Gregory Szorc authored
We just marked the changegroupsubset command as only available to version 1 of the wire transports. There is a capability of the same name of the command that indicates if the command is supported. This commit teaches the capabilities code to conditionally emit that capability depending on whether the command is available for the current transport. Most test output is reordering of capabilities. But the limited tests for version 2 of the SSH protocol do show the capability disappearing. Differential Revision: https://phab.mercurial-scm.org/D2486
-
Gregory Szorc authored
Now that we have the ability to control which transports a wire protocol command is exposed on, let's put it to use. We flag the "branches," "changegroup," and "changegroupsubset" commands as only available on version 1. "branches" was used by the legacy discovery mechanism and was replaced by the "known" and "heads" commands. "changegroup" and "changegroupsubset" were replaced by "getbundle." "between" is also legacy. However, since it is used by the SSH handshake protocol, marking it as legacy is a bit more complicated and will be done in a later commit. Another nuanced issue with this change is that the server-advertised capabilities still list "changegroupsubset" despite the command not being available. This will be addressed in a subsequent commit. Differential Revision: https://phab.mercurial-scm.org/D2485
-
Gregory Szorc authored
The protocol handler needs to advertise itself as version 2 in order for a future feature to work. Differential Revision: https://phab.mercurial-scm.org/D2484
-
- Mar 02, 2018
-
-
Gregory Szorc authored
Currently, wire protocol commands are exposed on all transports. Some wire protocol commands are only supported or sensical on some transports. In the future, new wire protocol commands may only be available on new transports and legacy wire protocol commands may not be available to newer transports. This commit introduces a mechanism to allow @wireprotocommand to declare transports for which they should not be available. The mechanism for determining if a wire protocol command is available for a given transport instance has been taught to take this knowledge into account. To help implement this feature, we add a dict to wireprototypes declaring all wire transports and their metadata. There's probably room to refactor the constants used to identify the wire protocols. But that can be in another commit. Differential Revision: https://phab.mercurial-scm.org/D2483
-
Gregory Szorc authored
We previously prevented the creation of doublepipe instances when we're not supposed to automatically read from stderr. However, there were other automatic calls to read from stderr that were undermining this effort. This commit prevents all automatic reads from stderr from occurring when they are supposed to be disabled. Because stderr is no longer being read, we need to call "readavailable" from tests so stderr is read from. Test output changes because stderr is now always (manually) read after stdout. And, since sshpeer no longer automatically tends to stderr, no "remote: " messages are printed. This should fix non-deterministic test output. FWIW, doublepipe automatically reads from stderr when reading from stdout, so I'm not sure some of these calls to self._readerr() are even needed. Differential Revision: https://phab.mercurial-scm.org/D2571
-
- Feb 15, 2018
-
-
Boris Feld authored
With this commit, util.py lose 262 lines Note for extensions author, if this commit breaks your extension, you can pull the step-by-step split here to help you more easily pinpoint the renaming that broke your extension: hg pull https://bitbucket.org/octobus/mercurial-devel/ -r ac1f6453010d Differential Revision: https://phab.mercurial-scm.org/D2282
-
- Feb 08, 2018
-
-
Sangeet Kumar Mishra authored
Differential Revision: https://phab.mercurial-scm.org/D2095
-