Subject: Re: [PATCH 1/2] revision: Denote root commits with '#'

From: Junio C Hamano <[email-masked]>
Date: Wed, 20 Jan 2021 13:52:03 -0800

"Jason Pyeron" <[email-masked]> writes:

>> I actually do not see that as a problem.  In the past several years,
>> I've never needed to see "log --graph" output that goes all the way
>
> I respect your needs, but they conflict with others' needs, while
> this enhancement to resolve an ambiguity does not impede your
> needs and solves others' needs.

I am questioning if such "needs" really exist in the first place.

Among 35k+ commits in the example project, if you had more than a
few dozens of roots, then it may make sense to highlight them
differently from ordinary commits whether they have parents in the
shown part of the history.  It's like "log --decorate" shows branch
tips marked specially.

Yes, I am saying that such a "this is root" marking, if it is
valuable, should go on a part of "log --oneline" output that is
shown even without "--graph", just like we annotate the commit with
"(branch name)" in the output, instead of painting the commit in the
graph by replacing the '*' node with something else.

And how often do you really need to see commits near the root, say
the earliest 100 commits, in the 35k+ commit history?  Is it really
necessary to tell which among these 100 is the root?  What problem
does it solve?  Perhaps I am reacting to your solution without
seeing the problem you are trying to solve?  First, I took the
"replace <*> with {#}" as a solution for "parenthood becomes unclear
in the --graph output" problem, and pointed out that the solution
for that issue should apply to not just root commits but equally to
the ones above the boundary.

But it seems that I am hearing that it is not "graph showing false
parenthood" problem that you were trying to solve, but "I want to
see root differently for unspecified reason".

I am asking why, and if the reason is because there are nontrivial
number of them sprinkled throughout the history, I am offering my
opinion that something like how we show the commits at the tips of
branches and tagged ones would be a better model than changing the
letter used for the node in the graph.

> Here are some messages:
>
> bug 2252 test case (e.g. for tomcat 9 with unpackWARs=false)
> Add migrate-from-blackfat.sql
> Initial commit from Create React App
> parrent pom
> initial commit
> Base applet
> intial
> Initial commit
> initial
> import prod 
> import prod sql 
> import prod 
> import coop/dev 
> import prod CMIS.zip

You seem to have problems with not just root commits ;-)
How many of these 5 "initial" commits are root?

> I'll ask the following questions, besides the left right and test case issues:
>
> What quality issues exists with the patch (e.g. bugs, strategy, etc)?

By strategy I take that you mean design.  We've been talking about
it, right?  Until that gets more or less settled, line-by-line bug
hunting tends to become a waste of time, and I haven't had a chance
to afford extra review bandwidth to dedicate to this topic.

Now the problem being solved seems to be changing, so I am not sure
how close to be "done" the posted patch is to the real solution.
Sorry.