Re: [GSoC RFC PATCH 0/1] graph: add indentation for commits preceded by a root
- From
- Phillip Wood <phillip.wood123@gmail.com>
- Date
- May 14, 2026, 15:15 UTC
- Message-ID
- <26d887d2-6ec2-4af1-b0bd-8e9b017bb4dd@gmail.com>
- In-Reply-To
- <20260402211717.3604688-1-pabloosabaterr@gmail.com>
Hi Pablo
On 02/04/2026 22:17, Pablo Sabater wrote:
Show 15 quoted lines
> When having a history with multiple root commits and drawing the history > near the roots, the graphing engine renders the commit one below the other, > seeming that they are related, which makes the graph confusing. > > This issue was reported by Junio at: > https://lore.kernel.org/git/xmqqikaawrpx.fsf@gitster.g/ > > e.g.: > > * root-B > * child-A2 > * child-A1 > * root-A > > [...]
>
Show 5 quoted lines
> * root-B > * child-A2 > / > * child-A1 > * root-A
I'm rather late to the party here, but personally I find the indentation a bit confusing, it would be clearer to me if we had a blank line after a root commit
* root-B
* child-A2
* child-A1
* root-AIt takes the same amount of vertical space but keeps the children of root-A together.
Thanks
Phillip
Show 58 quoted lines
> This is done by adding a is_placeholder flag to the columns, the root commit > is actually there but marked as a placeholder > > e.g.: > > * root-B > (B) * child-A2 > / > * child-A1 > * root-A > > (B) would be root-B column with the placeholder flag active. > > Then teaching the rendering function to print a padding ' ' when meeting a > placeholder column outputs the second example. > > There could also be the case where there are multiple roots > > without the patch: > > * A root > * B root > * C root > * D1 child > * D root > > with the patch, the indentation cascades: > > * A root > * B root > * C root > * D1 child > _ / > / > / > * D root > > the _ / might look weird but that's how the collapsing rendering does it > for big gaps, this case being from the 4th column to the 0th column. > Another patch could change the collapsing rendering for placeholders ? > I haven't done it to keep it minimal, but a follow up could make it > to be straight '/'. This would make it bigger but easier for the eye to follow. > IMO is not worth it, but opinions are welcome. > > The patch also adds tests for different cases like a root preceding multiple > parents merges and the examples above. > > There could be some edge cases still so any testing is very welcome. > > Pablo Sabater (1): > graph: add indentation for commits preceded by a root > > graph.c | 68 ++++++++++++++++-- > t/t4215-log-skewed-merges.sh | 136 +++++++++++++++++++++++++++++++++++ > 2 files changed, 198 insertions(+), 6 deletions(-) > > > base-commit: 256554692df0685b45e60778b08802b720880c50