stringutil: teach pprint() to recognize generators
Otherwise they get serialized as e.g.
<generator object X at 0x
7f543d3d68c0>
Differential Revision: https://phab.mercurial-scm.org/D4396
commitextras: no need to special case extras=[]
Differential Revision: https://phab.mercurial-scm.org/D4405
commitextras: work nicely with other extensions
Before this change, it doesn't add these extra fields when loaded
alongside another extension that does a bunch of things, including
wrapping commit.
I did not investigate exactly why, but
- the documentation of extensions.wrapfunction says to use subclassing
to play nicely with other extensions
- using subclassing does make commitextras work when loaded alongside
my other extension
Differential Revision: https://phab.mercurial-scm.org/D4404
context: use new names for unstable changesets in docstrings
Plus slight corrections.
index: embed nodetree in index object to avoid reference cycle
Since the index has a reference to a nodetree and the nodetree has a
reference back to the index, there is a reference cycle, so the index
(and its nodetree) can never be freed. This patch fixes that by making
"nodetree" a plan C struct that the index can embed, and also
introduces a new "nodetreeObject" that is a Python type wrapping the
nodetree struct.
Thanks to Yuya for noticing this and for suggesting the solution.
All tests passed on the first attempt once it compiled (I guess C is
like Haskell in this regard?).
Differential Revision: https://phab.mercurial-scm.org/D4372
catapipe: make the file executable
This silences test-check-execute.t.
Differential Revision: https://phab.mercurial-scm.org/D4403
run-tests: fix the remaining failure of test-run-tests.py
Looks like durin42 misindented this. This makes test-run-tests.py passes but I
cannot reason why.
Differential Revision: https://phab.mercurial-scm.org/D4402
run-tests: don't append rtendtracing logs if pipe is /dev/null
If HGCATAPULTSERVERPIPE is not set, we set it to /dev/null, so we need to make
sure the value is not /dev/null before appending logs.
This fixes some of test-run-tests.t failures.
Differential Revision: https://phab.mercurial-scm.org/D4401
cmdutil: fix typo in revert()
Differential Revision: https://phab.mercurial-scm.org/D4381
log: respect graphshorten on terminal nodes (collapsing o-~ to just o~)
Internally we have a custom template that's inspired by ones that we have seen
in the community. Normally, this looks something like:
o
0834ec17 spectral tip
| crecord: support x to toggle single, X to toggle a range
o
ee932990 spectral @
| filemerge: allow specifying $hgeditor as merge-tools.X.executable
@
66f04611 matt_harbison
| cext: fix truncation warnings in revlog on Windows
o
42cc76d0 matt_harbison
| cext: fix revlog compiler error on Windows
~
o
bd63ada7 stable boris
| phases: drop dead code in `newheads`
~
With graphshorten on, and the descriptions of the public nodes hidden, it looks
like this, note that the commits right before the ~ are still "full height":
o
0834ec17 spectral tip
| crecord: support x to toggle single, X to toggle a range
o
ee932990 spectral @
| filemerge: allow specifying $hgeditor as merge-tools.X.executable
@
66f04611 matt_harbison
o
42cc76d0 matt_harbison
|
~
o
bd63ada7 stable boris
|
~
This patch makes them look like this, removing the | but keeping the ~:
o
0834ec17 spectral tip
| crecord: support x to toggle single, X to toggle a range
o
ee932990 spectral @
| filemerge: allow specifying $hgeditor as merge-tools.X.executable
@
66f04611 matt_harbison
o
42cc76d0 matt_harbison
~
o
bd63ada7 stable boris
~
This originally removed the ~s entirely, but this was determined to be too much
information loss and potentially confusing. This would have looked like the
following (note that the last commit is on a different branch than all of the
ones above it, and they are *not* linearly related):
o
0834ec17 spectral tip
| crecord: support x to toggle single, X to toggle a range
o
ee932990 spectral @
| filemerge: allow specifying $hgeditor as merge-tools.X.executable
@
66f04611 matt_harbison
o
42cc76d0 matt_harbison
o
bd63ada7 stable boris
Differential Revision: https://phab.mercurial-scm.org/D4363
filemerge: fix the wrong placements of messages in prompt
Mistakenly, the local-changed-other-deleted-message was put in
other-change-local-deleted and vice versa. This followups on D4336.
Thanks to Yuya who spotted this.
Differential Revision: https://phab.mercurial-scm.org/D4375
filemerge: print the filename in quotes in prompt
This is better as the filename is in quotes and user can understand better what
the filename is and what is important part in the prompt.
Differential Revision: https://phab.mercurial-scm.org/D4373
filelog: remove proxies to revlog
These proxy attributes and methods were added to facilitate various
debug* and perf* commands. Now that cmdutil.openrevlog() returns
an actual revlog, we no longer need these on the filelog class.
There's probably a few other attributes that could be removed. But
this feels like a worthy start.
Differential Revision: https://phab.mercurial-scm.org/D4359