test-phases-exchange: properly conditionalize output
I forgot to invert the conditions, and the test runner didn't catch it[1]. But
since only '&&' is supported in the per-line feature tests, this won't work
anyway.
[1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-July/101941.html
run-tests: check if stream is a tty before using color
Previous implementation (
e80041832eec) checked only if sys.stderr was a tty
which was less general. Also makes sure that colors is never used if pygments is
not available, irrespective of --color flag value.
tests: rewrite test-rebase-detach.t using drawdag
This makes it much clearer because each test case can have exactly the
graph it wants (no extra cruft just because other tests want it).
Differential Revision: https://phab.mercurial-scm.org/D94
tests: simplify config in test-rebase-detach.t
Differential Revision: https://phab.mercurial-scm.org/D93
drawdag: include files from both parents in merge commits
Consider a graph like this:
D
|\
B C
|/
A
drawdag will add a file called A in commit A, file B in B, file C in
C. That's fine and expected. In merge commits like D, I would expect
the files and their contents to be taken from the parent commits, so
commit D in this example would have files A, B, and C. However,
drawdag will instead add the file D compared to the first
parent. Depending on whether B or C got a smaller nodeid, the contents
of D would be {A, B, D} or {A, C, D}. This patch changes it to to be
{A, B, C}.
Differential Revision: https://phab.mercurial-scm.org/D92