git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Christian Couder <chriscool@tuxfamily.org>,
	git@vger.kernel.org, Sam Vilain <sam@vilain.net>,
	Ingo Molnar <mingo@elte.hu>
Subject: Re: [PATCH 0/4] make it possible to skip away from broken commits
Date: Tue, 02 Jun 2009 20:14:13 -0700	[thread overview]
Message-ID: <4A25EA85.5090208@zytor.com> (raw)
In-Reply-To: <7vmy8qe4ru.fsf@alter.siamese.dyndns.org>

Junio C Hamano wrote:
> Christian Couder <chriscool@tuxfamily.org> writes:
> 
>> This patch series adds a "--ratio=x/y" option to "git bisect skip" so
>> that it is possible to skip away from an area were the commits cannot
>> be tested.
>>
>> Note that in this series "--ratio=4" means the same as "--ratio=1/4".
>> But I am not sure if this shortcut is worth it.
> 
> Actually my gut feeling is that a tweakable knob itself is worth it,
> because the user can never tell what the right value should be.
> 
> Especially without any documentation updates that explains what this ratio
> refers to ;-), but I suspect, unless the user is very familiar with how
> the revision graph bisection internally works, such an explanation would
> not help him find a skip ratio that is closer to the optimum than a random
> guess.  Why not use a constant ratio (or perhaps a pair of alternating
> ratios) on "bisect skip" without any new options?
> 

I would agree with this assessment.  It's hard enough to teach a user
how to use "git bisect" as it is... and being able to have a *user*
bisect a problem is worth its weight in gold.

If the algorithm I proposed earlier is too complex, here is a very
simple approximation:

start:
	num = 1
	den = 2

again:
	run test (num/den)
	if (!skip)
		goto start

	num = num + 2
	if (num > den)	
		num = 1
		den = den * 2

	goto again


This creates test ratios in the following sequence:

1/2 1/4 3/4 1/8 3/8 5/8 7/8 1/16 3/16 ...

When one gets down to a small number of points this could get weird, but
as long as skip points are filtered (which looks like it's already being
 done) it should converge.

This is almost certainly suboptimal, because there are at least two
possibilities as to which is better, and this isn't either:

a) one should seek points closer to the periphery, because the
likelihood of a contiguous skip region goes down.

1/2 1/4 3/4 1/8 7/8 1/16 15/16 ...

b) one should seek points closer to the center in the hope of getting
more information; this is better on the assumption that skip points are
generally scattered:

1/2 1/4 3/4 3/8 5/8 1/8 7/8 7/16 9/16 5/16 11/16 ...

However, as before, I think there is every reason to believe something
like that should be plenty good enough.

	-hpa

-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.

  reply	other threads:[~2009-06-03  3:15 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-02 20:16 [PATCH 0/4] make it possible to skip away from broken commits Christian Couder
2009-06-02 20:16 ` [PATCH 1/4] bisect: add parameters to "filter_skipped" Christian Couder
2009-06-02 20:16 ` [PATCH 2/4] bisect: use the skip ratio to choose a commit away from a skipped commit Christian Couder
2009-06-02 20:16 ` [PATCH 3/4] bisect: add "--ratio=<ratio>" option to "git bisect skip" Christian Couder
2009-06-02 20:16 ` [PATCH 4/4] t6030: add test case for "git bisect skip --ratio=x/y" Christian Couder
2009-06-02 20:53 ` [PATCH 0/4] make it possible to skip away from broken commits Junio C Hamano
2009-06-03  3:14   ` H. Peter Anvin [this message]
2009-06-03  6:32     ` Christian Couder
2009-06-03  7:10     ` Junio C Hamano
2009-06-03  6:29   ` Christian Couder

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=4A25EA85.5090208@zytor.com \
    --to=hpa@zytor.com \
    --cc=chriscool@tuxfamily.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=mingo@elte.hu \
    --cc=sam@vilain.net \
    /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).