git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2] revision: implement --show-linear-break for --graph

From
KMKyle Marek <kmarek@pdinc.us>
Date
Jan 18, 2021, 07:56 UTC
Message-ID
<04c81462-3181-37d7-0109-4292040b84e9@pdinc.us>
In-Reply-To
<xmqq35yzknbr.fsf@gitster.c.googlers.com>
On 1/17/21 9:09 PM, Junio C Hamano wrote:
Show 41 quoted lines
> Junio C Hamano<gitster@pobox.com>  writes:
>
>> In other words, revs->break_revision_mark is left NULL unless
>> --show-linear-break is given.
>>
>>> @@ -4192,8 +4192,8 @@ const char *get_revision_mark(const struct rev_info *revs, const struct commit *
>>>   		else
>>>   			return ">";
>>>   	} else if (revs->graph) {
>>> -		if (!commit->parents)
>>> -			return "#";
>>> +		if (revs->break_revision_mark && !commit->parents)
>>> +			return revs->break_revision_mark;
>> And that causes this to break.  Now "--graph" alone won't show '#'
>> for the root commits, despite that is what [1/2] wanted to do.
>>
>> Here is a fix-up, plus some minimum tests.
> Having said all that, I do not mind if the new markings were
> activated only when --show-linear-break option (or a separate new
> option) is given.  But if that is where we want to go, your [1/2]
> that uses the new markings unconditionally is a regression.
>
> A better organization, if we wanted to have multiple and smaller
> steps than a single whole thing, would be:
>
>   [1/2] Introduce a new "--mark-root-commits" option, or abuse the
>         existing "--show-linear-break" option, and change "*<>"
>         marking used for commits to "#LR" (or whatever appropriate)
>         when the option is in effect.  Document the behaviour and add
>         tests.
>
>   [2/2] Introduce "--show-linear-break=<custom-value>" option.
>         Document the behaviour and add tests.
>
> If you apply [1/2] and [2/2] with the earlier fixes I sent, you'll
> see many fallouts from existing tests, as the representation of the
> root commit is changed unconditionally.  We view breakages of tests
> as a rough estimate of how badly end-user scripts could break, and
> the picture was not very pretty.  And that is why I am suggesting
> the above "only do the new markings when asked, not unconditionally"
> approach.

Sorry. I didn't make this clear. It is not an accident that patch 1 denotes root commits unconditionally and patch 2 makes it optional. I present two choices. If we prefer to unconditionally denote root commits, patch 2 may be left out, otherwise, patch 1 should be squashed away.

I didn't have an opinion towards either option, but you make a good point about end-user scripts.

> I still am skeptical that spending 3 more letters to denote roots is
> worth it, though.

Me too, but I think a user-defined mark needs to be a string to support Unicode characters.

-- 
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-                                                               -
- Kyle Marek                        PD Inc.http://www.pdinc.us  -
- Jr. Developer                     10 West 24th Street #100    -
- +1 (443) 269-1555 x361            Baltimore, Maryland 21218   -
-                                                               -
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Previous: Junio C HamanoNext: Junio C Hamano
Message 26 of 29 in “add a blank line when a commit has no parent in log output?”
  1. Jason PyeronJan 14, 2021
  2. Philippe BlainJan 14, 2021
  3. Jason PyeronJan 14, 2021
  4. 0/2 Option to modify revision mark for root commitsKyle Marek, Jan 17, 2021
  5. 1/2 revision: Denote root commits with '#'Kyle Marek, Jan 17, 2021
  6. Junio C HamanoJan 17, 2021
  7. Kyle MarekJan 18, 2021
  8. Junio C HamanoJan 18, 2021
  9. Junio C HamanoJan 18, 2021
  10. Kyle MarekJan 19, 2021
  11. Junio C HamanoJan 19, 2021
  12. Kyle MarekJan 20, 2021
  13. Junio C HamanoJan 20, 2021
  14. Jason PyeronJan 20, 2021
  15. Junio C HamanoJan 20, 2021
  16. Jason PyeronJan 20, 2021
  17. Junio C HamanoJan 23, 2021
  18. Jason PyeronJan 23, 2021
  19. Junio C HamanoJan 23, 2021
  20. Jason PyeronJan 24, 2021
  21. Junio C HamanoJan 25, 2021
  22. Junio C HamanoJan 17, 2021
  23. 2/2 revision: implement --show-linear-break for --graphKyle Marek, Jan 17, 2021
  24. Junio C HamanoJan 17, 2021
  25. Junio C HamanoJan 18, 2021
  26. Kyle MarekJan 18, 2021
  27. Junio C HamanoJan 18, 2021
  28. Kyle MarekJan 19, 2021
  29. Junio C HamanoJan 15, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.