Re: Assertion in git log graphing [regression in v2.25]
From: Jeff King <hidden>
Date: 2020-01-07 11:48:15
On Tue, Jan 07, 2020 at 11:24:50AM +0000, Bradley Smith wrote:
The following git repository (https://github.com/brads55/git-testcase) causes an assertion when running: $ git log --oneline --graph --all git-log: graph.c:1228: graph_output_collapsing_line: Assertion `graph->mapping[i - 3] == target' failed.
Thanks for the report, and especially for providing a reproduction case! The problem is new in the v2.25 release candidates, so we should try to deal with it before the release.
The assertion seems to be caused by commit 0f0f389f12029b1c3745f8ed7aacfe6b2fc7a6cc. The graph structure of the above repository is as follows (as produced by v2.24.1):
Yeah, I can confirm that this introduces the problem. I admit to not
following the recent graph changes too closely, so I'll add James to the
cc for attention.
The assertion itself is quite old, so I wondered if it was even still
relevant. Removing it does produce a reasonable-looking graph:
* a0a130c Merge commit '8f076d8' into HEAD
|\
| | * f0f3be5 Merge commit '1b4b8d0' into HEAD
| | |\
| | | * 1b4b8d0 6
| | * | 2c44f1b 2
| | | | * dd068b4 Merge commit '8f076d8' into HEAD
| |_|_|/|
|/| | |/
| | |/|
| |/| |
| * | | 8f076d8 5
| | |/
| |/|
* | | a261135 4
| |/
|/|
* | a267dd6 1
|/
* 68f4772 0
but the colors aren't quite right. In particular, in this segment:
| | | | * dd068b4 Merge commit '8f076d8' into HEAD
| |_|_|/|
|/| | |/
the first-parent line coming from dd068b4 is red in the slashes, but
uncolored in the underscores.
So much for naive fix. :)
-Peff