Re: [PATCH] bisect: test merge base if good rev is not an ancestor of bad rev

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Le jeudi 10 juillet 2008, Johannes Schindelin a écrit :
> Hi,
>
> On Thu, 10 Jul 2008, Christian Couder wrote:
> > Before this patch, "git bisect", when it was given some good revs that
> > are not ancestor of the bad rev, didn't check if the merge bases were
> > good. "git bisect" just supposed that the user knew what he was doing,
> > and that, when he said the revs were good, he knew that it meant that
> > all the revs in the history leading to the good revs were also
> > considered good.
>
> Well, it is not completely relying on the user.

Yeah it's relying on statistics too.

> The common scenario before a bisect is this: something used to work _all
> the time_, and all of a sudden, it does not anymore.

I agree that it is the most common scenario, perhaps 95% or perhaps even 99% 
or more. But mistakes and special cases happens too.

For example people can forget to apply in the trunk a fix that is in a side 
branch. Or they can revert in a side branch a big buggy feature just before 
making a minor release; but in the trunk the big buggy feature is still 
there and may very well have introduced regressions.

> So it is expected that there is no fix in the history.  Not in the
> current branch, not in the "good" branch, not wherever.
>
> In that case, you are literally guaranteed that all ancestors of a good
> commit are good, too, because if there was a bad one, there would be a
> fix, too.

Yeah, in that case...

> The whole idea of "bisect" relies on that idea, that any ancestor of a
> good commit is good.  Otherwise you'd have to check the commits one by
> one, not in a bisecting manner.

No, you just need to check that the merge bases between the bad rev on one 
side and each good rev on the other side are good too. And if that is the 
case, then you can be sure that bisection will point to a first bad commit.

So the choice is between a simple and fast but not fully reliable bisect, or 
a more complex and slower but fully reliable bisect.

Regards,
Christian.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux