From: andreas.koenig.7os6VVqR@franz.ak.mind.de (Andreas J. Koenig)
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [BUG] Git bisect not finding the right commit
Date: Fri, 20 Jan 2012 08:56:50 +0100 [thread overview]
Message-ID: <87ehuu958d.fsf@franz.ak.mind.de> (raw)
In-Reply-To: <7vlip4je87.fsf@alter.siamese.dyndns.org> (Junio C. Hamano's message of "Thu, 19 Jan 2012 00:20:08 -0800")
>>>>> On Thu, 19 Jan 2012 00:20:08 -0800, Junio C Hamano <gitster@pobox.com> said:
jch> andreas.koenig.7os6VVqR@franz.ak.mind.de (Andreas J. Koenig) writes:
>> A v5.15.5
>> B v5.15.5-20-gfd76d40
>> C v5.15.5-81-gcfe287a
>> D v5.15.5-159-ga71d67b
>> E v5.15.4-110-g27b29ec
>> F v5.15.4-169-g3582575
>>
>> The change in perl I tried to locate was v5.15.5-13-gff0cf12, between A
>> and B. Bisect did not find it, it returned me E instead. Here the wrong
>> bisect output:
jch> Just for the sake of simplicity, I'll call ff0cf12 "Q" (the Questionable
jch> one).
>> % git bisect start v5.15.5-159-ga71d67b v5.15.5
jch> You start by telling Git that D is bad and A is good.
jch> I can see that D does contain Q (i.e. "git log D..Q" gives nothing), which
jch> you should read as "D is _contaminated_ by the breakage Q introduced", so
jch> D is indeed bad.
jch> On the other hand, A does _not_ contain Q (i.e. "git log A..Q" gives
jch> output), which you should read as "A is _not_ contaminated by the breakage
jch> Q introduced", so A is indeed good.
jch> So far so good...
>> Already on 'blead'
>> Bisecting: 77 revisions left to test after this (roughly 6 steps)
>> [cfe287a06b2ed98c25aebb477f6b400409f1fc85] Merge remote-tracking branch 'p5p/smoke-me/gsoc-pod' into blead
>> % git describe
>> v5.15.5-81-gcfe287a
jch> This is your "C", and "git log C..Q" does not give anything. C is
jch> contaminated by Q, hence it is bad.
>> % git bisect bad
>> Bisecting: 40 revisions left to test after this (roughly 5 steps)
>> [baf7658bacfa659cdab08050470b20ebd5973384] Update htmlview.t for new Pod::Html
>> % git describe
>> v5.15.4-149-gbaf7658
jch> Here, baf7658 does not contain Q, so you are supposed to answer it is
jch> GOOD.
>> % git bisect bad
jch> But you answered that it is BAD.
jch> Why?
The reason turned out to be that a perl module that was involved in the
testing had been upgraded in the meantime (YAML-0.77 to 0.78). So your
whole answer was correctly describing the situation. From this point
GiGo started to happen because the rest of the tests involved also used
the newer version of that module while some other tests were done with
the older version.
So thank you for clearing that up!
jch> [...]
>>>>> On Thu, 19 Jan 2012 09:23:01 +0100, Johannes Sixt <j.sixt@viscovery.net> said:
js> Am 1/19/2012 4:29, schrieb Andreas J. Koenig:
>> - A -> B -> C - D ->
>> \ /
>> - E - F -
>>
>> A v5.15.5
>> B v5.15.5-20-gfd76d40
>> C v5.15.5-81-gcfe287a
>> D v5.15.5-159-ga71d67b
>> E v5.15.4-110-g27b29ec
>> F v5.15.4-169-g3582575
js> I haven't looked at the actual history, but given the names of the commits
js> as produced by git-describe, I doubt that your history graph sketched
js> above is correct. Doesn't it look more like this:
js> A -- B -- C -- D --
js> / /
js> -- X -- E -- F
js> where X is v5.15.4?
Yes, thank you for finding that out. X is actually v5.15.4-109-g3ea0c58
and since there was a long timespan between the start of the development
of the code and the merge (May-Nov), the gitk presentation got a bit
complex to read.
js> To find a commit between A and B, you must declare F as "good".
Correct! The reason it happened described above.
Thank you folks for taking the time and making such a careful assessment!
--
andreas
next prev parent reply other threads:[~2012-01-20 7:57 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-19 3:29 [BUG] Git bisect not finding the right commit Andreas J. Koenig
2012-01-19 8:20 ` Junio C Hamano
2012-01-20 7:56 ` Andreas J. Koenig [this message]
2012-01-20 18:09 ` Junio C Hamano
2012-01-24 20:21 ` Jeff King
2012-01-19 8:23 ` 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ehuu958d.fsf@franz.ak.mind.de \
--to=andreas.koenig.7os6vvqr@franz.ak.mind.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/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).