From: Junio C Hamano <gitster@pobox.com>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Jonathan Nieder <jrnieder@gmail.com>, git@vger.kernel.org
Subject: Re: Reachability lists in git
Date: Tue, 18 Nov 2014 13:05:29 -0800 [thread overview]
Message-ID: <xmqqa93ousme.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1411181541590.2918-100000@iolanthe.rowland.org> (Alan Stern's message of "Tue, 18 Nov 2014 15:45:43 -0500 (EST)")
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).
Around here when we draw history horizontally we place parents on
the left hand side and the children on the right hand side. X is
B's parent and does not include B's changes. Y is not B's parent.
Y is a child of X so it has all the imperfection of X inherited to
it (except the ones that is fixed by Y itself), but there is no way
it inherited the bug B introduced relative to X.
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
Admittedly it is a needless merge (there should normally be one or
more commits between X and B on the other branch to make a merge B
worthwhile---you could just have fast forwarded Y to B), but that
does not break the reachability or bisectability in any way.
Confused...
next prev parent reply other threads:[~2014-11-18 21:05 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-18 19:03 Reachability lists in git Alan Stern
2014-11-18 19:41 ` Jonathan Nieder
2014-11-18 20:13 ` Junio C Hamano
2014-11-18 20:22 ` Jonathan Nieder
2014-11-18 20:27 ` Jonathan Nieder
2014-11-18 20:33 ` Junio C Hamano
2014-11-18 20:29 ` Alan Stern
2014-11-18 20:32 ` Jonathan Nieder
2014-11-18 20:45 ` Alan Stern
2014-11-18 21:05 ` Junio C Hamano [this message]
2014-11-18 21:11 ` Junio C Hamano
2014-11-18 21:16 ` Alan Stern
2014-11-18 21:22 ` Junio C Hamano
2014-11-18 21:37 ` Alan Stern
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqa93ousme.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.com \
--cc=stern@rowland.harvard.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).