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

Re: Reachability lists in git

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 18, 2014, 21:11 UTC
Message-ID
<xmqq61ecusbs.fsf@gitster.dls.corp.google.com>
In-Reply-To
<xmqqa93ousme.fsf@gitster.dls.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 37 quoted lines
> Alan Stern <stern@rowland.harvard.edu> writes:
>
>> On Tue, 18 Nov 2014, Jonathan Nieder wrote:
>>
>>> Alan Stern wrote:
>>> 
>>> > Tracking down regressions.  Bisection isn't perfect.  Suppose a
>>> > bisection run ends up saying that B is the first bad commit.  It's easy
>>> > enough to build B and test it, to verify that it really is bad.
>>> >
>>> > But to be sure that B introduced the fault, it would help to find the
>>> > latest commit that doesn't include B's changes -- that is, the latest
>>> > commit that B isn't reachable from (or the maximal elements in the set
>>> > of all such commits).
>>> 
>>> Isn't that B^ (or B^ and B^2, if B is a merge)?
>>
>> No.  Here's a simple example:
>>
>>             Y
>>            /
>>           /
>>          X--B
>>
>> In this diagram, X = B^.  But B isn't reachable from either X or Y, 
>> whereas it is reachable from one of X's children (namely Y).
> ...
>
> Why do you say B is reachable from Y?
>
> If you mean that B is a merge between X and Y, then that is already
> covered by what Jonathan wrote "(or B^ and B^2 if B is a merge)".
>
>     X----Y
>      \    \
>       .----B
> ...

No, that cannot be what you meant. I was confused. The above picture does not make B reachable from Y (it is the other way around: B reaches Y). The topology where B isn't reachable from either X or Y and is reachable from Y would be

	X---Y	i.e. B = Y^2, X = Y^1 = B^1 
         \ /  
          B

If B is broken, and X is not, then Y would be contaminated by the breakage B introduces relative to X, unless Y is an evil merge and fixed that breakage while merging.

In any case, even if Y is found to be broken, its parent B is already broken, so that does not place the blame on Y, does it?

Still confused why you feel Y is any significant...
Previous: Junio C HamanoNext: Alan Stern
Message 11 of 14 in “Reachability lists in git”
  1. Alan SternNov 18, 2014
  2. Jonathan NiederNov 18, 2014
  3. Junio C HamanoNov 18, 2014
  4. Jonathan NiederNov 18, 2014
  5. Jonathan NiederNov 18, 2014
  6. Junio C HamanoNov 18, 2014
  7. Alan SternNov 18, 2014
  8. Jonathan NiederNov 18, 2014
  9. Alan SternNov 18, 2014
  10. Junio C HamanoNov 18, 2014
  11. Junio C HamanoNov 18, 2014
  12. Alan SternNov 18, 2014
  13. Junio C HamanoNov 18, 2014
  14. Alan SternNov 18, 2014

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.