From: "Philip Oakley" <philipoakley@iee.org>
To: "Alex Hoffman" <spec@gal.ro>, "Johannes Sixt" <j6t@kdbg.org>
Cc: "Stephan Beyer" <s-beyer@gmx.net>, <git@vger.kernel.org>
Subject: Re: Git bisect does not find commit introducing the bug
Date: Sat, 18 Feb 2017 22:10:05 -0000 [thread overview]
Message-ID: <6545FDC46D2741A289D0D5E9A84ADD75@PhilipOakley> (raw)
In-Reply-To: CAMX8fZW2y+iPRfSbXVcHufbM+CsqgekS_0WnCEJ++=njy_TvKg@mail.gmail.com
From: "Alex Hoffman" <spec@gal.ro>
>> But this is not how Git works. Git computes graph differences, i.e., it
>> subtracts from the commits reachable from v.bad those that are reachable
>> from v.good. This leaves more than just those on some path from v.good to
>> v.bad. And it should work this way. Consider this history:
>>
>> --o--o--o--G--X
>> \ \
>> x--x--x--x--X--B--
>>
>> When you find B bad and G good, than any one of the x or X may have
>> introduced the breakage, not just one of the X.
>>
>
> Thank you for clarifying how git bisect works. How did you find that
> out? Did you check the source code? If that is not documented in the
> man page may be it worth documenting it in order to avoid future
> confusion for other users.
Any suggestions for improving the documentation are always worthwhile. As
someone who asked, what extra info would have helped?
Even beetter if it looks like a patch ;-)
>
> Let's consider your example with distinct names for nodes:
>
> --o1--o2--o3--G--X1
> \ \
> x1--x2--x3--x4--X1--B--
>
> It makes sense that git bisect is expecting a single transition, as
> this is a precondition for a binary search to work. My definition of
> "the transition" is a commit with at least one of its parents as a
> good version, but the commit itself a bad version. I hope we agree
> that git bisect's mission is to search for this transition (as I
> suppose that most of people need such a functionality from git, if not
> exactly from git bisect). How could be x1 or x3 be the transition, if
> chances are that o1 is not a good version? Of course it would make
> sense to me if bisect would check o1 whether good and only then to
> check also x1-x3, but this is not what git makes (at least not in my
> initial example).
>
> If you consider that git bisect's mission is different from finding
> the transition, could you please explain what exact commit git bisect
> is supposed to return (ideally with terms from the graph theory) and
> when it makes sense to return that? Because I do not see any sense in
> looking in the path x1-x3 without knowing that those commits may be a
> transition.
>
>
>> Oh, IMO git bisect was well thought through. If it considered just paths
>> from good to bad, it would not given the correct answer. See the example
>> history above. Bisect authors would not have deemed that sufficiently
>> good
>
> You definitely convinced me that git MUST search more than only in the
> paths between good and bad commits, as the good commit G does not have
> to be the first good commit (thank you for that). My problem/confusion
> is that it returns something that does not make sense to me, because
> it does not make sure it returns a transition.
>
> VG
>
> PS: thank you for continuing this discussion.
>
--
Philip
next prev parent reply other threads:[~2017-02-18 22:10 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-17 22:29 Git bisect does not find commit introducing the bug Alex Hoffman
2017-02-17 23:21 ` Stephan Beyer
2017-02-18 9:12 ` Johannes Sixt
2017-02-18 11:15 ` Alex Hoffman
2017-02-18 14:18 ` Johannes Sixt
2017-02-18 18:36 ` Alex Hoffman
2017-02-18 19:58 ` Christian Couder
2017-02-19 11:32 ` Alex Hoffman
2017-02-19 12:43 ` Alex Hoffman
2017-02-19 13:07 ` Christian Couder
2017-02-19 14:13 ` Johannes Sixt
2017-02-19 19:05 ` Alex Hoffman
2017-02-19 19:25 ` Jacob Keller
2017-02-20 7:38 ` Oleg Taranenko
2017-02-20 12:27 ` Jakub Narębski
2017-02-20 13:50 ` Oleg Taranenko
2017-02-20 20:31 ` Alex Hoffman
2017-02-20 20:35 ` Jakub Narębski
2017-02-20 20:39 ` Alex Hoffman
2017-02-20 22:24 ` Philip Oakley
2017-02-21 19:40 ` Alex Hoffman
2017-02-21 22:39 ` Philip Oakley
2017-02-20 9:02 ` Junio C Hamano
2017-02-18 22:10 ` Philip Oakley [this message]
2017-02-18 22:36 ` Hilco Wijbenga
2017-02-18 22:37 ` Johannes Sixt
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6545FDC46D2741A289D0D5E9A84ADD75@PhilipOakley \
--to=philipoakley@iee.org \
--cc=git@vger.kernel.org \
--cc=j6t@kdbg.org \
--cc=s-beyer@gmx.net \
--cc=spec@gal.ro \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).