On Fri, Jan 24, 2020 at 01:45:34PM -0500, Derrick Stolee wrote: > On 1/24/2020 11:34 AM, Jan Engelhardt wrote: > > On Friday 2020-01-24 15:06, Derrick Stolee wrote: > >> > >> I completely misread your ordering here. You are clear that this > >> is an issue in 2.24 and NOT 2.25. Sorry. > >> > >> I'm not sure that there is anything to do since the graph rendering > >> has changed so much, and we intend to keep the new version instead. > > > > I now have a minimized reproducer, for *2.25*: > > > > » ../git/git log --oneline --graph --all --decorate --topo-order > > * e1ee7b8 (HEAD -> master) Merge branch 'k9' into k10 > > |\ > > | * 7b48214 Merge branch 'k8' into k9 > > | |\ > > | | * ed02a51 Merge branch 'blah' into k8 > > | | |\ > > | | | * 44279cf blah > > | | * | 4053c4d Merge branch 'k7' into k8 > > | | |\ \ > > | |/ / / > > | | | _ > > | | * 5b449d6 update 8.7 news > > | |/ > > | * 43a324f foo > > |/ > > * 5932a51 root > > Hm. I get the above output for v2.24.1. Since you are using a > specific path for your execution, then perhaps that version > disagrees with the one on your PATH that reported "git version"? > > For v2.25.0 I get this: > > * e1ee7b8 (HEAD -> master, origin/master, origin/HEAD) Merge branch 'k9' into k10 > |\ > | * 7b48214 Merge branch 'k8' into k9 > | |\ > | | * ed02a51 Merge branch 'blah' into k8 > | | |\ > | | | * 44279cf blah > | | * | 4053c4d Merge branch 'k7' into k8 > | |/| | > | | |/ > | | * 5b449d6 update 8.7 news > | |/ > | * 43a324f foo > |/ > * 5932a51 root I get this good-looking graph with v2.25.0, too. A few notes to add: - We don't need the topmost commit e1ee7b8 to reproduce that strange underscore below the kink with v2.24.0: $ git --no-pager log --oneline --graph --topo-order 7b48214 * 7b48214 Merge branch 'k8' into k9 |\ | * ed02a51 Merge branch 'blah' into k8 | |\ | | * 44279cf blah | * | 4053c4d Merge branch 'k7' into k8 | |\ \ |/ / / | | _ | * 5b449d6 update 8.7 news |/ * 43a324f foo * 5932a51 root - Git behaved like that up until about the middle of the patch series simplifying the graph output, namely until commit 458152cce1 (graph: example of graph output that can be simplified, 2019-10-15). The next commit 0f0f389f12 (graph: tidy up display of left-skewed merges, 2019-10-15) changed the bahavior for the worse: * 7b48214 Merge branch 'k8' into k9 |\ | * ed02a51 Merge branch 'blah' into k8 | |\ | | * 44279cf blah | * | 4053c4d Merge branch 'k7' into k8 |/|\ | |/ | * 5b449d6 update 8.7 news |/ * 43a324f foo * 5932a51 root Notice how 4053c4d looks like an octopus merge, and 44279cf seemingly comes out of nowhere. And then the next commit d62893ecc1 (graph: commit and post-merge lines for left-skewed merges, 2019-10-15) seems to have fixed this issue, and we see the same good-looking graph that we get with v2.25.0 as well: * 7b48214 Merge branch 'k8' into k9 |\ | * ed02a51 Merge branch 'blah' into k8 | |\ | | * 44279cf blah | * | 4053c4d Merge branch 'k7' into k8 |/| | | |/ | * 5b449d6 update 8.7 news |/ * 43a324f foo * 5932a51 root - Interestingly, the issue of an underscore below the kink is mentioned in the later commit 92beecc136 (graph: flatten edges that fuse with their right neighbor, 2019-10-15), quoting the last part of its log message: One of the test cases here cannot be correctly rendered in Git v2.23.0; it produces this output following commit E: | | *-. \ 5_E | | |\ \ \ | |/ / / / | | | / _ | |_|/ |/| | The new implementation makes sure that the rightmost edge in this history is not left dangling as above. This is part of the new test case 'log --graph with octopus merge with column joining its penultimate parent' in t4215 that was added in 92beecc136. Usually when a commit both changes the code and add new tests, then that means that that new test would have failed on previous versions. However, that is not the case here: I tried this new test case on earlier commits in that series, and it already succeed with commit d62893ecc1, i.e. the same commit that fixes Jan's cases.