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

Re: [PATCH] Additional merge-base tests

From
A Large Angry SCM <gitzilla@gmail.com>
Date
Jul 4, 2006, 06:41 UTC
Message-ID
<44AA0DAE.1060308@gmail.com>
In-Reply-To
<7v3bdhoraa.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano wrote:
Show 24 quoted lines
> A Large Angry SCM <gitzilla@gmail.com> writes:
> 
>> This demonstrates a problem with git-merge-base.
>>  
>> +# Setup for second test set
>> +#
>> +#   PL  PR
>> +#  /  \/  \
>> +# L2  C2  R2
>> +# |   |   |
>> +# L1  C1  R1
>> +# |   |   |
>> +# L0  C0  R0
>> +#   \ |  /
>> +#     S
> 
> Cute.
> 
> This is a good demonstration that merge-base may not give you
> minimal set for pathological cases.  If you want to be through
> you could traverse everything to make sure we do not say 'S' is
> relevant, but that is quite expensive, so I think there will
> always be artifacts of horizon effect like this no matter how
> you try to catch it (didn't I keep saying that already?).

Not _that_ pathological in practice, given that you can't really depend on the timestamps in a distributed SCM.

The problem is in mark_reachable_commits(); it is either superfluous or it needs to parse_commit() those commits that haven't been parsed yet that it needs to traverse.

> However, I do not think it is really a "problem".  At least what
> "merge-base --all" did not miss any, that should be OK.
The degree of the problem is, admittedly, situational.
> I think the practical way to proceed is to say that the test
> condition should really check that we do not _omit_ C2 in the
> merge-base --all output.

I do not believe that the (current) code will miss any bases but it can certainly return bases that are reachable from other bases.

Previous: Junio C HamanoNext: Junio C Hamano
Message 3 of 26 in “Additional merge-base tests”
  1. Additional merge-base testsA Large Angry SCM, Jul 4, 2006
  2. Junio C HamanoJul 4, 2006
  3. A Large Angry SCMJul 4, 2006
  4. Junio C HamanoJul 4, 2006
  5. Junio C HamanoJul 4, 2006
  6. Johannes SchindelinJul 4, 2006
  7. Junio C HamanoJul 4, 2006
  8. Jakub NarebskiJul 4, 2006
  9. Johannes SchindelinJul 4, 2006
  10. Johannes SchindelinJul 4, 2006
  11. A Large Angry SCMJul 4, 2006
  12. Junio C HamanoJul 4, 2006
  13. Johannes SchindelinJul 4, 2006
  14. Junio C HamanoJul 4, 2006
  15. A Large Angry SCMJul 4, 2006
  16. Jakub NarebskiJul 4, 2006
  17. Junio C HamanoJul 4, 2006
  18. A Large Angry SCMJul 5, 2006
  19. Junio C HamanoJul 5, 2006
  20. Johannes SchindelinJul 5, 2006
  21. A Large Angry SCMJul 5, 2006
  22. Johannes SchindelinJul 5, 2006
  23. Josef WeidendorferJul 5, 2006
  24. A Large Angry SCMJul 5, 2006
  25. A Large Angry SCMJul 4, 2006
  26. Junio C HamanoJul 5, 2006

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.