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

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

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 23, 2021, 23:45 UTC
Message-ID
<xmqq7do32p6q.fsf@gitster.c.googlers.com>
In-Reply-To
<057b01d6f1db$c46d7d50$4d4877f0$@pdinc.us>
"Jason Pyeron" <jpyeron@pdinc.us> writes:
> One and the same issue. Placing an * directly above another * is the issue.

OK, I re-read the messages in the thread, and it appears that this part from Kyle

Show 17 quoted lines
>>>   
>>>             C
>>>            /
>>>           O---A---B
>>>                    \
>>>             X---Y---Z
>>>   
>>>   When graphing C..Z, git produces output like:
>>>   
>>>   *   0fbb0dc (HEAD -> z) Z
>>>   |\
>>>   | * 11be529 (master) B
>>>   | * 8dd1b85 A
>>>   * 851a915 Y
>>>   * 27d3ed0 (x) X
>>>   
>>>   We cannot tell from the above graph alone that X is a root and A is not.

was the only thing that argued that A and X (if the graph drawing happend to place an unrelated commit immediately below it) should be drawn differently so that you can tell X (root) and A (non root) apart.

And you are saying (and it seems that you have consistently been saying) that it is OK to draw A and X (again if other unrelated commits were immediately drawn below them) the same way. So I guess all is well. We do not have to use more 6 different symbols ("{#}" to show commit above boundary, three more to show roots) but need to introduce only three, if we were to go with the Solution #1 route.

It seems to me that Solution #2 is a special case of Solution #3 ;-) They are both direct answers to the "graph drawn incorrectly can imply ancestry that does not exist" problem.

Adding the "--decorate-roots" option that annotates the root commits in the "git log" output can still be done, but that is an orthogonal issue. It does solve, together with any one of three options you presented, the issue Kyle brought up, I would think.

Thanks.
Previous: Jason PyeronNext: Jason Pyeron
Message 19 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.