git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christian Couder <chriscool@tuxfamily.org>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] bisect: use "$GIT_DIR/BISECT_START" to check if we are bisecting
Date: Thu, 29 May 2008 06:01:18 +0200	[thread overview]
Message-ID: <200805290601.19067.chriscool@tuxfamily.org> (raw)
In-Reply-To: <7vmymauzqg.fsf@gitster.siamese.dyndns.org>

Le mercredi 28 mai 2008, Junio C Hamano a écrit :
> Christian Couder <chriscool@tuxfamily.org> writes:
> > It seems simpler and safer to use the BISECT_START file everywhere
> > to decide if we are bisecting or not, instead of using it in some
> > places and BISECT_NAMES in other places.
> >
> > In commit 6459c7c6786aa9bda0c7a095c9db66c36da0e5f0 (Nov 18 2007,
> > Bisect: use "$GIT_DIR/BISECT_NAMES" to check if we are bisecting.),
> > we decided to use BISECT_NAMES but code changed a lot and we now
> > have to check BISECT_START first in the "bisect_start" function
> > anyway.
> >
> > This patch also makes things a little bit safer by creating
> > the BISECT_START file first and deleting it last, and also by
> > adding checks in "bisect_clean_state".
> >
> > Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
>
> What's the breakage scenario that this patch fixes?

Before this patch, in "bisect_clean_state" we removed the BISECT_START file 
before the other files, so for example if the process is killed after 
having removed this file but not the others, then we are in an inconsistent 
state.

In this inconsistent state, if "git bisect reset" is called (perhaps again), 
then it would checkout the "master" branch (because the BISECT_START file 
does not exists, but the BISECT_NAMES file still exists).

> > diff --git a/git-bisect.sh b/git-bisect.sh
> > index 4bcbace..991b2ef 100755
> > --- a/git-bisect.sh
> > +++ b/git-bisect.sh
> > @@ -44,7 +44,7 @@ sq() {
> >  }
> >
> >  bisect_autostart() {
> > -	test -f "$GIT_DIR/BISECT_NAMES" || {
> > +	test -s "$GIT_DIR/BISECT_START" || {
>
> The reason you ignore an existing but empty BISECT_START file is...?

... that it should not happen, because this file is only written 
in "bisect_start" and there its content comes either from the current HEAD 
or from a previous not empty BISECT_START file.

We might add a check for an empty BISECT_START file and warn in this case 
that the file may have been corrupted, but that may be for another patch.

Thanks,
Christian.

  reply	other threads:[~2008-05-29  3:58 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-28 16:57 [PATCH] bisect: use "$GIT_DIR/BISECT_START" to check if we are bisecting Christian Couder
2008-05-28 17:04 ` Junio C Hamano
2008-05-29  4:01   ` Christian Couder [this message]
2008-05-29  4:28     ` Junio C Hamano

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=200805290601.19067.chriscool@tuxfamily.org \
    --to=chriscool@tuxfamily.org \
    --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).