From: Mirko Faina <mroik@delayed.space>
To: Chandra Pratap <chandrapratap3519@gmail.com>
Cc: Pablo Sabater <pabloosabaterr@gmail.com>,
git@vger.kernel.org, ayu.chandekar@gmail.com,
christian.couder@gmail.com, gitster@pobox.com,
jltobler@gmail.com, karthik.188@gmail.com, krka@spotify.com,
peff@peff.net, phillip.wood@dunelm.org.uk,
siddharthasthana31@gmail.com, Mirko Faina <mroik@delayed.space>
Subject: Re: [PATCH v9 0/4] graph: indent visual roots in graph
Date: Sun, 12 Jul 2026 15:10:49 +0200 [thread overview]
Message-ID: <alOOXKGIB8BqACxR@exploit> (raw)
In-Reply-To: <CA+J6zkQcHu-LVKE-1ypfT=59gEzo4qBzi-pmhSJNC_udCDCJZg@mail.gmail.com>
On Sun, Jul 12, 2026 at 11:26:27AM +0530, Chandra Pratap wrote:
> Tying graph-drawing logic to specific formatting flags could introduce
> inconsistencies. For example, if a user relies on a custom format like
> --format="%h %s", the output is functionally single-line and suffers
> from the exact same ambiguity, but it would miss the fix.
>
> Even in multi-line formats, relying on the absence of a '|' character to spot
> unrelated commits requires active effort. Indentation provides an immediate
> visual cue that breaks the vertical lineage, which is helpful regardless of the
> commit message length.
>
> I agree with Pablo: for users who strictly want the old behavior, an opt-out
> flag keeps the graph logic decoupled from the formatting logic.
In that case, together with --[no]-graph-indent, a configuration
variable like "graph.indent" could be introduced to reduce the usage of
--[no]-graph-indent for those that would like to retain the old
behaviour for most formats.
> > > Apart from having an option to disable indentation.
> > >
> > > We could have the cascading to have a limit or make it zig-zag:
> > >
> > > instead of:
> > >
> > > A
> > > B
> > > C
> > > D
> > >
> > > We could do:
> > >
> > > A
> > > B
> > > C
> > > D
> > >
> > > This would have its own edge cases like:
> > >
> > > A
> > > B
> > > C <- if we zig-zag here C and D become ambiguous, currently we are
> > > D indenting only the last commits (visual roots) here we would have
> > > D to chose between continuing cascading or indenting the first of D.
> > >
> > > I'm not so sure if I like the zig-zag solution because we need to think again
> > > if it causes an ambiguity, but I wanted to mention it.
> > >
> > > I think we need some more opinions about the design.
> >
> > I don't dislike the the current solution but I can see it degenerating
> > if someone contributes a lot of one-patch series.
> >
> > Maybe you could indent commits that are both head and tail up to two
> > levels and then on the third go back to the beginning of the line. That
> > way you kind of have a zig-zag but without ambiguity. You'd only have to
> > add a counter to keep track of the level of indentation.
>
> Not sure about this. A zig-zag pattern visually mimics branching and
> merging, which makes unrelated commits look like a complex merge topology.
>
> I also have a feeling that this will end up recreating the exact ambiguity this
> patch series is trying to fix.
While a zig-zag pattern might be ambiguous, what I proposed is a little
different.
What I proposed is effectively a wrapping for anything that goes beyond
two levels of indentation. I don't think it would look anything like a
fork/merge pattern.
* A
* B
* C
* D
* E
* F
The difference between two indentation levels and no indentation is very
noticeble, I don't think anyone confused this. This would fix the
staircase pattern on adjacent one-patch series.
next prev parent reply other threads:[~2026-07-12 13:10 UTC|newest]
Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-02 21:17 [GSoC RFC PATCH 0/1] graph: add indentation for commits preceded by a root Pablo Sabater
2026-04-02 21:17 ` [GSoC RFC PATCH 1/1] " Pablo Sabater
2026-04-03 17:55 ` Junio C Hamano
2026-04-03 18:07 ` Pablo
2026-04-03 5:04 ` [GSoC RFC PATCH 0/1] " Junio C Hamano
2026-04-03 8:25 ` Pablo
2026-04-04 9:24 ` [GSoC RFC PATCH v2 0/1] graph: add indentation for commits preceded by a parentless commit Pablo Sabater
2026-04-04 9:24 ` [GSoC RFC PATCH v2 1/1] " Pablo Sabater
2026-04-10 16:25 ` [GSoC RFC PATCH v2 0/1] " Pablo
2026-04-10 16:54 ` Junio C Hamano
2026-04-27 10:28 ` [GSoC PATCH v3 " Pablo Sabater
2026-04-27 10:28 ` [GSoC PATCH v3 1/1] " Pablo Sabater
2026-05-13 23:02 ` Jeff King
2026-05-14 10:19 ` Pablo Sabater
2026-04-27 10:35 ` [GSoC PATCH v3 0/1] " Pablo
2026-06-12 13:48 ` [PATCH v4 0/2] graph: indent visual roots in graph Pablo Sabater
2026-06-12 13:48 ` [PATCH v4 1/2] lib-log-graph: move check_graph function Pablo Sabater
2026-06-12 13:48 ` [PATCH v4 2/2] graph: indent visual root in graph Pablo Sabater
2026-06-13 3:01 ` [PATCH v4 0/2] graph: indent visual roots " Junio C Hamano
2026-06-13 19:09 ` [PATCH v5 " Pablo Sabater
2026-06-13 19:09 ` [PATCH v5 1/2] lib-log-graph: move check_graph function Pablo Sabater
2026-06-13 19:09 ` [PATCH v5 2/2] graph: indent visual root in graph Pablo Sabater
2026-06-14 4:05 ` Junio C Hamano
2026-06-14 5:28 ` Pablo Sabater
2026-06-15 15:42 ` Junio C Hamano
2026-06-16 13:06 ` Pablo Sabater
2026-06-16 16:36 ` Junio C Hamano
2026-06-17 20:27 ` Jeff King
2026-06-18 12:42 ` Pablo Sabater
2026-06-18 13:31 ` Junio C Hamano
2026-06-18 16:05 ` Jeff King
2026-06-18 16:07 ` Jeff King
2026-06-19 7:34 ` Kristofer Karlsson
2026-06-21 18:05 ` Jeff King
2026-06-22 8:29 ` Kristofer Karlsson
2026-06-17 10:33 ` [PATCH v5 0/2] graph: indent visual roots " Chandra Pratap
2026-06-20 10:11 ` [PATCH v6 0/3] " Pablo Sabater
2026-06-20 10:11 ` [PATCH v6 1/3] lib-log-graph: move check_graph function Pablo Sabater
2026-06-20 10:11 ` [PATCH v6 2/3] revision: add peek functions for lookahead Pablo Sabater
2026-06-20 10:18 ` Pablo Sabater
2026-06-20 14:56 ` Junio C Hamano
2026-06-20 15:15 ` Junio C Hamano
2026-06-21 1:48 ` Junio C Hamano
2026-06-21 6:42 ` Chandra Pratap
2026-06-22 8:28 ` Kristofer Karlsson
2026-06-29 21:56 ` Junio C Hamano
2026-06-29 23:29 ` Pablo Sabater
2026-06-20 10:11 ` [PATCH v6 3/3] graph: indent visual root in graph Pablo Sabater
2026-07-04 8:52 ` [PATCH v7 0/3] graph: indent visual roots " Pablo Sabater
2026-07-04 8:52 ` [PATCH v7 1/3] lib-log-graph: move check_graph function Pablo Sabater
2026-07-04 8:52 ` [PATCH v7 2/3] graph: add a 2 commit buffer for lookahead Pablo Sabater
2026-07-06 9:49 ` Chandra Pratap
2026-07-06 13:44 ` Kristofer Karlsson
2026-07-06 15:33 ` Chandra Pratap
2026-07-07 6:31 ` Pablo Sabater
2026-07-07 18:12 ` Pablo Sabater
2026-07-04 8:52 ` [PATCH v7 3/3] graph: indent visual root in graph Pablo Sabater
2026-07-10 10:37 ` [PATCH v8 0/4] graph: indent visual roots " Pablo Sabater
2026-07-10 10:37 ` [PATCH v8 1/4] lib-log-graph: move check_graph function Pablo Sabater
2026-07-10 10:37 ` [PATCH v8 2/4] revision: add next_commit_to_show() Pablo Sabater
2026-07-10 10:37 ` [PATCH v8 3/4] graph: add a 2 commit buffer for lookahead Pablo Sabater
2026-07-10 10:37 ` [PATCH v8 4/4] graph: indent visual root in graph Pablo Sabater
2026-07-10 18:07 ` Mirko Faina
2026-07-10 20:29 ` Pablo Sabater
2026-07-11 13:37 ` [PATCH v9 0/4] graph: indent visual roots " Pablo Sabater
2026-07-11 13:37 ` [PATCH v9 1/4] lib-log-graph: move check_graph function Pablo Sabater
2026-07-11 13:37 ` [PATCH v9 2/4] revision: add next_commit_to_show() Pablo Sabater
2026-07-11 13:37 ` [PATCH v9 3/4] graph: add a 2 commit buffer for lookahead Pablo Sabater
2026-07-11 13:37 ` [PATCH v9 4/4] graph: indent visual root in graph Pablo Sabater
2026-07-11 14:15 ` [PATCH v9 0/4] graph: indent visual roots " Mirko Faina
2026-07-11 15:41 ` Pablo Sabater
2026-07-11 16:25 ` Mirko Faina
2026-07-12 5:56 ` Chandra Pratap
2026-07-12 13:10 ` Mirko Faina [this message]
2026-07-12 13:12 ` Mirko Faina
2026-07-12 16:59 ` Pablo Sabater
2026-07-12 19:33 ` Mirko Faina
2026-07-13 7:41 ` Chandra Pratap
2026-07-13 10:44 ` [PATCH v10 0/7] " Pablo Sabater
2026-07-13 10:44 ` [PATCH v10 1/7] lib-log-graph: move check_graph function Pablo Sabater
2026-07-13 10:44 ` [PATCH v10 2/7] revision: add next_commit_to_show() Pablo Sabater
2026-07-13 10:44 ` [PATCH v10 3/7] graph: add a 2 commit buffer for lookahead Pablo Sabater
2026-07-13 10:44 ` [PATCH v10 4/7] graph: indent visual root in graph Pablo Sabater
2026-07-13 10:44 ` [PATCH v10 5/7] graph: wrap cascading commits after 4 columns Pablo Sabater
2026-07-13 10:44 ` [PATCH v10 6/7] graph: move config reading into graph_read_config() Pablo Sabater
2026-07-13 10:44 ` [PATCH v10 7/7] graph: add --[no-]graph-indent and log.graphIndent Pablo Sabater
2026-07-13 14:06 ` Mirko Faina
2026-07-13 16:16 ` Pablo Sabater
2026-07-13 16:43 ` [PATCH v11 0/7] graph: indent visual roots in graph Pablo Sabater
2026-07-13 16:43 ` [PATCH v11 1/7] lib-log-graph: move check_graph function Pablo Sabater
2026-07-13 16:43 ` [PATCH v11 2/7] revision: add next_commit_to_show() Pablo Sabater
2026-07-13 16:44 ` [PATCH v11 3/7] graph: add a 2 commit buffer for lookahead Pablo Sabater
2026-07-13 16:44 ` [PATCH v11 4/7] graph: indent visual root in graph Pablo Sabater
2026-07-13 16:44 ` [PATCH v11 5/7] graph: wrap cascading commits after 4 columns Pablo Sabater
2026-07-13 16:44 ` [PATCH v11 6/7] graph: move config reading into graph_read_config() Pablo Sabater
2026-07-13 16:44 ` [PATCH v11 7/7] graph: add --[no-]graph-indent and log.graphIndent Pablo Sabater
2026-07-14 10:19 ` Chandra Pratap
2026-07-14 11:47 ` Pablo Sabater
2026-07-13 20:28 ` [PATCH v11 0/7] graph: indent visual roots in graph Junio C Hamano
2026-07-13 20:51 ` Pablo Sabater
2026-07-14 12:09 ` [PATCH v12 " Pablo Sabater
2026-07-14 12:09 ` [PATCH v12 1/7] lib-log-graph: move check_graph function Pablo Sabater
2026-07-14 12:09 ` [PATCH v12 2/7] revision: add next_commit_to_show() Pablo Sabater
2026-07-14 12:09 ` [PATCH v12 3/7] graph: add a 2 commit buffer for lookahead Pablo Sabater
2026-07-14 12:09 ` [PATCH v12 4/7] graph: indent visual root in graph Pablo Sabater
2026-07-14 12:09 ` [PATCH v12 5/7] graph: wrap cascading commits after 4 columns Pablo Sabater
2026-07-14 12:09 ` [PATCH v12 6/7] graph: move config reading into graph_read_config() Pablo Sabater
2026-07-14 12:09 ` [PATCH v12 7/7] graph: add --[no-]graph-indent and log.graphIndent Pablo Sabater
2026-05-14 15:15 ` [GSoC RFC PATCH 0/1] graph: add indentation for commits preceded by a root Phillip Wood
2026-05-14 17:45 ` Pablo Sabater
2026-05-15 9:33 ` Phillip Wood
2026-05-17 6:31 ` Chandra Pratap
2026-05-18 13:26 ` Pablo Sabater
2026-05-19 0:03 ` Junio C Hamano
2026-05-19 5:59 ` Pablo Sabater
2026-06-10 15:21 ` Junio C Hamano
2026-06-10 15:28 ` Pablo Sabater
2026-05-19 10:39 ` Chandra Pratap
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alOOXKGIB8BqACxR@exploit \
--to=mroik@delayed.space \
--cc=ayu.chandekar@gmail.com \
--cc=chandrapratap3519@gmail.com \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jltobler@gmail.com \
--cc=karthik.188@gmail.com \
--cc=krka@spotify.com \
--cc=pabloosabaterr@gmail.com \
--cc=peff@peff.net \
--cc=phillip.wood@dunelm.org.uk \
--cc=siddharthasthana31@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.