{"thread":{"id":"52580","subject":"Assertion in git log graphing","startedAt":"2020-01-07T11:25:04Z","lastAt":"2020-01-07T14:57:40Z","messageCount":12,"participants":["Bradley Smith","Jeff King","Derrick Stolee","Eric Sunshine"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"389354","messageId":"CAHt=fUXTHc4JPsapvHKnw5vHhp2cBOYRNfdaSDWBUnKt8fWfeA@mail.gmail.com","threadId":"52580","inReplyTo":null,"subject":"Assertion in git log graphing","fromName":"Bradley Smith","fromEmail":"brad@brad-smith.co.uk","sentAt":"2020-01-07T11:24:50Z","receivedAt":"2020-01-07T11:25:04Z","isPatch":false,"sender":{"key":"brad@brad-smith.co.uk","avatar":null},"body":"Hi,\n\nThe following git repository (https://github.com/brads55/git-testcase)\ncauses an assertion when running:\n\n  $ git log --oneline --graph --all\n\n  git-log: graph.c:1228: graph_output_collapsing_line: Assertion\n`graph->mapping[i - 3] == target' failed.\n\nThe assertion seems to be caused by commit\n0f0f389f12029b1c3745f8ed7aacfe6b2fc7a6cc. The graph structure of the\nabove repository is as follows (as produced by v2.24.1):\n\n*   a0a130c Merge commit '8f076d8' into HEAD\n|\\\n| | *   f0f3be5 Merge commit '1b4b8d0' into HEAD\n| | |\\\n| | | * 1b4b8d0 6\n| | * | 2c44f1b 2\n| | | | *   dd068b4 Merge commit '8f076d8' into HEAD\n| | | | |\\\n| |_|_|/ /\n|/| | | /\n| | |_|/\n| |/| |\n| * | | 8f076d8 5\n| | |/\n| |/|\n* | | a261135 4\n| |/\n|/|\n* | a267dd6 1\n|/\n* 68f4772 0\n\nRegards,\nBradley Smith\n"},{"id":"389356","messageId":"20200107114812.GE1073219@coredump.intra.peff.net","threadId":"52580","inReplyTo":"CAHt=fUXTHc4JPsapvHKnw5vHhp2cBOYRNfdaSDWBUnKt8fWfeA@mail.gmail.com","subject":"Re: Assertion in git log graphing [regression in v2.25]","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2020-01-07T11:48:12Z","receivedAt":"2020-01-07T11:48:15Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Jan 07, 2020 at 11:24:50AM +0000, Bradley Smith wrote:\n\n> The following git repository (https://github.com/brads55/git-testcase)\n> causes an assertion when running:\n> \n>   $ git log --oneline --graph --all\n> \n>   git-log: graph.c:1228: graph_output_collapsing_line: Assertion\n> `graph->mapping[i - 3] == target' failed.\n\nThanks for the report, and especially for providing a reproduction case!\n\nThe problem is new in the v2.25 release candidates, so we should try to\ndeal with it before the release.\n\n> The assertion seems to be caused by commit\n> 0f0f389f12029b1c3745f8ed7aacfe6b2fc7a6cc. The graph structure of the\n> above repository is as follows (as produced by v2.24.1):\n\nYeah, I can confirm that this introduces the problem. I admit to not\nfollowing the recent graph changes too closely, so I'll add James to the\ncc for attention.\n\nThe assertion itself is quite old, so I wondered if it was even still\nrelevant. Removing it does produce a reasonable-looking graph:\n\n  *   a0a130c Merge commit '8f076d8' into HEAD\n  |\\  \n  | | *   f0f3be5 Merge commit '1b4b8d0' into HEAD\n  | | |\\  \n  | | | * 1b4b8d0 6\n  | | * | 2c44f1b 2\n  | | | | * dd068b4 Merge commit '8f076d8' into HEAD\n  | |_|_|/| \n  |/| | |/  \n  | | |/|   \n  | |/| |   \n  | * | | 8f076d8 5\n  | | |/  \n  | |/|   \n  * | | a261135 4\n  | |/  \n  |/|   \n  * | a267dd6 1\n  |/  \n  * 68f4772 0\n\nbut the colors aren't quite right. In particular, in this segment:\n\n    | | | | * dd068b4 Merge commit '8f076d8' into HEAD\n    | |_|_|/| \n    |/| | |/  \n\nthe first-parent line coming from dd068b4 is red in the slashes, but\nuncolored in the underscores.\n\nSo much for naive fix. :)\n\n-Peff\n"},{"id":"389362","messageId":"d694a5b5-9c88-0a34-b9fd-050e5e02c312@gmail.com","threadId":"52580","inReplyTo":"20200107114812.GE1073219@coredump.intra.peff.net","subject":"Re: Assertion in git log graphing [regression in v2.25]","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2020-01-07T12:22:07Z","receivedAt":"2020-01-07T12:22:12Z","isPatch":false,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"On 1/7/2020 6:48 AM, Jeff King wrote:\n> On Tue, Jan 07, 2020 at 11:24:50AM +0000, Bradley Smith wrote:\n> \n>> The following git repository (https://github.com/brads55/git-testcase)\n>> causes an assertion when running:\n>>\n>>   $ git log --oneline --graph --all\n>>\n>>   git-log: graph.c:1228: graph_output_collapsing_line: Assertion\n>> `graph->mapping[i - 3] == target' failed.\n> \n> Thanks for the report, and especially for providing a reproduction case!\n> \n> The problem is new in the v2.25 release candidates, so we should try to\n> deal with it before the release.\n> \n>> The assertion seems to be caused by commit\n>> 0f0f389f12029b1c3745f8ed7aacfe6b2fc7a6cc. The graph structure of the\n>> above repository is as follows (as produced by v2.24.1):\n> \n> Yeah, I can confirm that this introduces the problem. I admit to not\n> following the recent graph changes too closely, so I'll add James to the\n> cc for attention.\n\nI'm also going to take a look this morning, starting by creating a test.\nI reviewed what I could of James' patch series, but I was also unfamiliar\nwith graph.c and relied on his very substantial test cases to verify the\ncorrectness. Looks like a corner case got missed.\n\nThanks,\n-Stolee\n\n"},{"id":"389363","messageId":"fe1cd838-d390-96ab-d3b4-72df5aa61947@gmail.com","threadId":"52580","inReplyTo":"d694a5b5-9c88-0a34-b9fd-050e5e02c312@gmail.com","subject":"Re: Assertion in git log graphing [regression in v2.25]","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2020-01-07T12:42:19Z","receivedAt":"2020-01-07T12:42:23Z","isPatch":false,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"On 1/7/2020 7:22 AM, Derrick Stolee wrote:\n> I'm also going to take a look this morning, starting by creating a test.\n\nHere is a a patch that reproduces the test failure. It hits the\nassert, so it definitely fails.\n\nNOTE: The test may not actually pass after this bug is fixed, as\nthe output expectation may not match exactly. Thus, the test will\nlikely still fail after fixing the bug, but for a different reason.\nI could use the output from v2.24.1, but the point of these changes\nin graph.c was to have a compressed output in exactly these cases\nof multiple edges moving to the left. In particular, the edges out\nof 6_F will likely need updating.\n\nIf I manage to do the \"right\" fix, then I'll update this test\naccordingly.\n\n-Stolee\n\n-->8--\n\nFrom: Derrick Stolee <dstolee@microsoft.com>\nDate: Tue, 7 Jan 2020 07:35:56 -0500\nSubject: [PATCH] graph: add failing test that hits assert()\n\nA failure was reported in \"git log --graph --all\" with the new\ngraph-rendering logic. Create a test case that matches the\ntopology of that example and uses an explicit ref ordering instead\nof the \"--all\" option. The test fails with the following error:\n\n\tgraph.c:1228: graph_output_collapsing_line: Assertion\n\t\t      `graph->mapping[i - 3] == target' failed.\n\nReported-by: Bradley Smith <brad@brad-smith.co.uk>\nSigned-off-by: Derrick Stolee <dstolee@microsoft.com>\n---\n t/t4215-log-skewed-merges.sh | 43 ++++++++++++++++++++++++++++++++++++\n 1 file changed, 43 insertions(+)\n\ndiff --git a/t/t4215-log-skewed-merges.sh b/t/t4215-log-skewed-merges.sh\nindex 18709a723e..bab8a7ed56 100755\n--- a/t/t4215-log-skewed-merges.sh\n+++ b/t/t4215-log-skewed-merges.sh\n@@ -240,4 +240,47 @@ test_expect_success 'log --graph with octopus merge with column joining its penu\n \tEOF\n '\n \n+test_expect_failure 'log --graph with multiple tips' '\n+\tgit checkout --orphan 6_1 &&\n+\ttest_commit 6_A &&\n+\tgit branch 6_2 &&\n+\tgit branch 6_4 &&\n+\ttest_commit 6_B &&\n+\tgit branch 6_3 &&\n+\ttest_commit 6_C &&\n+\tgit checkout 6_2 && test_commit 6_D &&\n+\tgit checkout 6_3 && test_commit 6_E &&\n+\tgit checkout -b 6_5 6_1 &&\n+\tgit merge --no-ff 6_2 -m 6_F &&\n+\tgit checkout 6_4 && test_commit 6_G &&\n+\tgit checkout 6_3 &&\n+\tgit merge --no-ff 6_4 -m 6_H &&\n+\tgit checkout 6_1 &&\n+\tgit merge --no-ff 6_2 -m 6_I &&\n+\n+\tcheck_graph 6_1 6_3 6_5 <<-\\EOF\n+\t* 6_I\n+\t|\\\n+\t| | * 6_H\n+\t| | |\\\n+\t| | | * 6_G\n+\t| | * | 6_E\n+\t| | | | *   6_F\n+\t| | | | |\\\n+\t| |_|_|/ /\n+\t|/| | | /\n+\t| | |_|/\n+\t| |/| |\n+\t| * | | 6_D\n+\t| | |/\n+\t| |/|\n+\t* | | 6_C\n+\t| |/\n+\t|/|\n+\t* | 6_B\n+\t|/\n+\t* 6_A\n+\tEOF\n+'\n+\n test_done\n-- \n2.24.1.vfs.1.1.12.gccc87aa318\n\n\n"},{"id":"389364","messageId":"CAPig+cRH-yeHmeikf=cbTTMDom+7SLtT2dmya=WP7fsy8tTY3g@mail.gmail.com","threadId":"52580","inReplyTo":"fe1cd838-d390-96ab-d3b4-72df5aa61947@gmail.com","subject":"Re: Assertion in git log graphing [regression in v2.25]","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2020-01-07T12:50:41Z","receivedAt":"2020-01-07T12:50:56Z","isPatch":false,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Tue, Jan 7, 2020 at 7:42 AM Derrick Stolee <stolee@gmail.com> wrote:\n> Here is a a patch that reproduces the test failure. It hits the\n> assert, so it definitely fails.\n\nWhat happens if someone builds the project with NDEBUG? Then the test\nwon't fail as expected. Perhaps this patch ought to also change those\nasserts() to `if (...) BUG(...)` to ensure consistent behavior.\n"},{"id":"389366","messageId":"3fd8d52c-622e-29a6-442c-66797a3ae1f9@gmail.com","threadId":"52580","inReplyTo":"CAPig+cRH-yeHmeikf=cbTTMDom+7SLtT2dmya=WP7fsy8tTY3g@mail.gmail.com","subject":"Re: Assertion in git log graphing [regression in v2.25]","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2020-01-07T12:56:01Z","receivedAt":"2020-01-07T12:56:05Z","isPatch":false,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"On 1/7/2020 7:50 AM, Eric Sunshine wrote:\n> On Tue, Jan 7, 2020 at 7:42 AM Derrick Stolee <stolee@gmail.com> wrote:\n>> Here is a a patch that reproduces the test failure. It hits the\n>> assert, so it definitely fails.\n> \n> What happens if someone builds the project with NDEBUG? Then the test\n> won't fail as expected. Perhaps this patch ought to also change those\n> asserts() to `if (...) BUG(...)` to ensure consistent behavior.\n\nA final version of the patch would probably fix the bug and not use\ntest_expect_failure. The other option would be to replace every\nassert() with a macro that did the \"if (...) BUG(...);\" conversion,\nbut maybe that's not necessary in general.\n\n-Stolee\n\n"},{"id":"389367","messageId":"CAPig+cTJKgXp1Pmp+muq-psHNrFhMBdZgfbMySozQ_dknpy-tw@mail.gmail.com","threadId":"52580","inReplyTo":"3fd8d52c-622e-29a6-442c-66797a3ae1f9@gmail.com","subject":"Re: Assertion in git log graphing [regression in v2.25]","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2020-01-07T13:14:39Z","receivedAt":"2020-01-07T13:14:54Z","isPatch":false,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On Tue, Jan 7, 2020 at 7:56 AM Derrick Stolee <stolee@gmail.com> wrote:\n> On 1/7/2020 7:50 AM, Eric Sunshine wrote:\n> > On Tue, Jan 7, 2020 at 7:42 AM Derrick Stolee <stolee@gmail.com> wrote:\n> >> Here is a a patch that reproduces the test failure. It hits the\n> >> assert, so it definitely fails.\n> >\n> > What happens if someone builds the project with NDEBUG? Then the test\n> > won't fail as expected. Perhaps this patch ought to also change those\n> > asserts() to `if (...) BUG(...)` to ensure consistent behavior.\n>\n> A final version of the patch would probably fix the bug and not use\n> test_expect_failure.\n\nIndeed, I understood that when I made the suggestion, but you still\nwant to be able to catch the problem if the code ever regresses and\nreintroduces the bug. And, to do so, you'd want to ensure consistent\nbehavior which you get with BUG() but not with assert().\n"},{"id":"389368","messageId":"5f956281-e861-f274-be43-95d99a625abb@gmail.com","threadId":"52580","inReplyTo":"20200107114812.GE1073219@coredump.intra.peff.net","subject":"Re: Assertion in git log graphing [regression in v2.25]","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2020-01-07T13:25:59Z","receivedAt":"2020-01-07T13:33:01Z","isPatch":false,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"On 1/7/2020 6:48 AM, Jeff King wrote:\n> The assertion itself is quite old, so I wondered if it was even still\n> relevant. Removing it does produce a reasonable-looking graph:\n\nAs I'm digging into this case, and finding when the assertion is hit,\nI see that the issue is in the line further below your coloring issue:\n\n>   | | | | * dd068b4 Merge commit '8f076d8' into HEAD\n>   | |_|_|/| \n>   |/| | |/  \n>   | | |/|   \n>   | |/| |   \n>   | * | | 8f076d8 5\n\nWhat is output is actually this, above. But the logic that includes the\nassert is checking where the underscores end, and the shown underscores\nactually pass the check. The issue is that it seems like it really wants\nto show this:\n\n>   | | | | * dd068b4 Merge commit '8f076d8' into HEAD\n>   | |_|_|/| \n>   |/| |_|/  \n>   | |/| |   \n>   | * | | 8f076d8 5\n\nNote that I dropped a line and compressed a slash into an underscore. It's\non that line that this condition is being hit.\n\nNow, is this really the intended behavior? Maybe. Looking at the previous\ntests in 54125-log-skewed-merges.sh, I don't see any where we have two\nskewed merges in the same merge.\n\nThanks,\n-Stolee\n"},{"id":"389370","messageId":"20200107140417.GA12242@coredump.intra.peff.net","threadId":"52580","inReplyTo":"5f956281-e861-f274-be43-95d99a625abb@gmail.com","subject":"Re: Assertion in git log graphing [regression in v2.25]","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2020-01-07T14:04:17Z","receivedAt":"2020-01-07T14:04:20Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Jan 07, 2020 at 08:25:59AM -0500, Derrick Stolee wrote:\n\n> On 1/7/2020 6:48 AM, Jeff King wrote:\n> > The assertion itself is quite old, so I wondered if it was even still\n> > relevant. Removing it does produce a reasonable-looking graph:\n> \n> As I'm digging into this case, and finding when the assertion is hit,\n> I see that the issue is in the line further below your coloring issue:\n\nOh, you're right. I totally missed that.\n\nSo perhaps we have two bugs, or perhaps they have the same root cause.\n\n> >   | | | | * dd068b4 Merge commit '8f076d8' into HEAD\n> >   | |_|_|/| \n> >   |/| | |/  \n> >   | | |/|   \n> >   | |/| |   \n> >   | * | | 8f076d8 5\n> \n> What is output is actually this, above. But the logic that includes the\n> assert is checking where the underscores end, and the shown underscores\n> actually pass the check. The issue is that it seems like it really wants\n> to show this:\n> \n> >   | | | | * dd068b4 Merge commit '8f076d8' into HEAD\n> >   | |_|_|/| \n> >   |/| |_|/  \n> >   | |/| |   \n> >   | * | | 8f076d8 5\n> \n> Note that I dropped a line and compressed a slash into an underscore. It's\n> on that line that this condition is being hit.\n\nHrm. I could see either being acceptable, but I do think the second one\nis a bit easier to read. I'm not sure which was intended for this case.\n\n-Peff\n"},{"id":"389371","messageId":"39277f9a-f88d-94a3-2a8b-b6e0a3dfdc62@gmail.com","threadId":"52580","inReplyTo":"20200107140417.GA12242@coredump.intra.peff.net","subject":"Re: Assertion in git log graphing [regression in v2.25]","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2020-01-07T14:22:34Z","receivedAt":"2020-01-07T14:22:38Z","isPatch":false,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"On 1/7/2020 9:04 AM, Jeff King wrote:\n> On Tue, Jan 07, 2020 at 08:25:59AM -0500, Derrick Stolee wrote:\n> \n>> On 1/7/2020 6:48 AM, Jeff King wrote:\n>>> The assertion itself is quite old, so I wondered if it was even still\n>>> relevant. Removing it does produce a reasonable-looking graph:\n>>\n>> As I'm digging into this case, and finding when the assertion is hit,\n>> I see that the issue is in the line further below your coloring issue:\n> \n> Oh, you're right. I totally missed that.\n> \n> So perhaps we have two bugs, or perhaps they have the same root cause.\n> \n>>>   | | | | * dd068b4 Merge commit '8f076d8' into HEAD\n>>>   | |_|_|/| \n>>>   |/| | |/  \n>>>   | | |/|   \n>>>   | |/| |   \n>>>   | * | | 8f076d8 5\n>>\n>> What is output is actually this, above. But the logic that includes the\n>> assert is checking where the underscores end, and the shown underscores\n>> actually pass the check. The issue is that it seems like it really wants\n>> to show this:\n>>\n>>>   | | | | * dd068b4 Merge commit '8f076d8' into HEAD\n>>>   | |_|_|/| \n>>>   |/| |_|/  \n>>>   | |/| |   \n>>>   | * | | 8f076d8 5\n>>\n>> Note that I dropped a line and compressed a slash into an underscore. It's\n>> on that line that this condition is being hit.\n> \n> Hrm. I could see either being acceptable, but I do think the second one\n> is a bit easier to read. I'm not sure which was intended for this case.\nSomewhat expanding the situation to test more of these collapses, I can get\nthe following graph:\n\n*   6_M1\n|\\\n| | *   6_M2\n| | |\\\n| | | * 6_H\n| | | | *   6_M3\n| | | | |\\\n| | | | | * 6_J\n| | | | * | 6_I\n| | | | | | *   6_M4\n| |_|_|_|_|/|\\\n|/| | | | |/ /\n| | | | |/| /\n| | | |/| |/\n| | |/| |/|\n| |/| |/| |\n| | |/| | |\n| | * | | | 6_G\n| | | |_|/\n| | |/| |\n| | * | | 6_F\n| * | | | 6_E\n| | |/ /\n| |/| |\n| * | | 6_D\n| | |/\n| |/|\n* | | 6_C\n| |/\n|/|\n* | 6_B\n|/\n* 6_A\n\nNote how 6_M4 has three parents, and the first parent has a horizontal\nedge. Even giving an extra padding line between horizontal edges, we\n_could_ output the following instead:\n\n\n| | | | | | *   6_M4\n| |_|_|_|_|/|\\\n|/| | | | |/ /\n| | |_|_|/| /\n| |/| | | |/\n| | | |_|/|\n| | |/| | |\n| | * | | | 6_G\n\nHowever, I'll stick with the fix for the coloring issue. I think it\nwas a previous bug that just wasn't hit until now.\n\nThanks,\n-Stolee\n"},{"id":"389374","messageId":"ac6d3172-699e-5a61-fa60-420980c49fad@gmail.com","threadId":"52580","inReplyTo":"39277f9a-f88d-94a3-2a8b-b6e0a3dfdc62@gmail.com","subject":"Re: Assertion in git log graphing [regression in v2.25]","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2020-01-07T14:43:55Z","receivedAt":"2020-01-07T14:43:58Z","isPatch":false,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"On 1/7/2020 9:22 AM, Derrick Stolee wrote:\n> Note how 6_M4 has three parents, and the first parent has a horizontal\n> edge. Even giving an extra padding line between horizontal edges, we\n> _could_ output the following instead:\n> \n> \n> | | | | | | *   6_M4\n> | |_|_|_|_|/|\\\n> |/| | | | |/ /\n> | | |_|_|/| /\n> | |/| | | |/\n> | | | |_|/|\n> | | |/| | |\n> | | * | | | 6_G\n\nI should have tested this example with v2.24.1, which gives this output\nin this section:\n\n| | | | | | *-.   6_M4\n| | | | | | |\\ \\  \n| |_|_|_|_|/ / /  \n|/| | | | | / /   \n| | |_|_|_|/ /    \n| |/| | | | /     \n| | | |_|_|/      \n| | |/| | |       \n| | * | | | 6_G\n\nSo, this is likely the behavior we would prefer.\n\nFor the release, it is likely best to keep the change that does not\ncollapse properly and fix this collapse bug later. (It is likely an\ninvasive change.)\n\nThanks,\n-Stolee\n"},{"id":"389380","messageId":"faa954fa-ccb9-b034-a39d-d2f0696826ea@gmail.com","threadId":"52580","inReplyTo":"CAHt=fUXTHc4JPsapvHKnw5vHhp2cBOYRNfdaSDWBUnKt8fWfeA@mail.gmail.com","subject":"Re: Assertion in git log graphing","fromName":"Derrick Stolee","fromEmail":"stolee@gmail.com","sentAt":"2020-01-07T14:57:36Z","receivedAt":"2020-01-07T14:57:40Z","isPatch":false,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"On 1/7/2020 6:24 AM, Bradley Smith wrote:\n> Hi,\n> \n> The following git repository (https://github.com/brads55/git-testcase)\n> causes an assertion when running:\n> \n>   $ git log --oneline --graph --all\n> \n>   git-log: graph.c:1228: graph_output_collapsing_line: Assertion\n> `graph->mapping[i - 3] == target' failed.\n\nBradley,\n\nThanks for the report. I've submitted [1] what I hope to be a\nsufficient fix.\n\nThanks,\n-Stolee\n\n[1] https://lore.kernel.org/git/pull.517.git.1578408947.gitgitgadget@gmail.com/\n"}]}