phases: leverage Py_BuildValue() to build PyInt and steal PyObject
"N" means "O" without incref, so we can just return the created tuple.
phases: make sure an exception should be set on error return
This should never happen, but the code looks wrong without PyErr_Set*() call.
phases: fix error return with no exception from computephases()
PySet_Check() does not set an exception.
osutil: fix excessive decref on tuple creation failure in listdir()
The stat object would be freed on error for the same reason as the previous
patch. makestat() can be inlined, but this patch doesn't change it.
https://github.com/python/cpython/blob/2.7/Python/modsupport.c#L292
The __APPLE__ code is untested.
revlog: fix excessive decref on tuple creation failure in parse_index2()
Since Py_BuildValue() steals the ownership of "N" arguments, these objects
would already be freed if Py_BuildValue() returned NULL.
https://github.com/python/cpython/blob/2.7/Python/modsupport.c#L292
tests: correctly match clang-format version >= 10
The previous regex only matched the first digit, so "clang-format version
10.0.0" was recognized as version 1.
state: support validated declaration of nested unfinished ops
This enables extensions to define commands that delgate to rebase, evolve, etc. one or more times to also have their own unfinished states for the full sequence of operations without monkey-patching _unfinishedstates.
Differential Revision: https://phab.mercurial-scm.org/D8714
absorb: improve message for the case when changeset became empty
In changeset
f55099982bc5, I introduced the message "became empty and became
...", which I was never very happy with. Raphaël Gomès suggested "became empty
as ...". That sounds much nicer.
Differential Revision: https://phab.mercurial-scm.org/D8765