From: Junio C Hamano <gitster@pobox.com>
To: Christian Couder <chriscool@tuxfamily.org>
Cc: Gustaf Hendeby <hendeby@isy.liu.se>,
git@vger.kernel.org, gitster@pobox.com
Subject: Re: [PATCH] Avoid warning when bisecting a merge
Date: Thu, 04 Sep 2008 23:29:15 -0700 [thread overview]
Message-ID: <7vhc8vxg04.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <200809050814.36937.chriscool@tuxfamily.org> (Christian Couder's message of "Fri, 5 Sep 2008 08:14:36 +0200")
Christian Couder <chriscool@tuxfamily.org> writes:
> Le jeudi 4 septembre 2008, Gustaf Hendeby a écrit :
>> Trying to compare an empty string as a number results in an error,
>> hence make sure checkout_done is set before using it.
>
> This patch seems to work fine.
>
>> Signed-off-by: Gustaf Hendeby <hendeby@isy.liu.se>
>
> Acked-by: Christian Couder <chriscool@tuxfamily.org>
Have you actually read the patch and thought about it before acking it?
Why does a variable that says "have we done checkout?" have three states?
Certainly it is not like "yes, no, dunno", right? checkout_done=0 which
was added by Gustaf, checkout_done=1 is the state the test checks with
(presumably set by check_good_are_ancestors_of_bad), and checkout_done=''
which the code does before returning?
>> diff --git a/git-bisect.sh b/git-bisect.sh
>> index 69a9a56..05d14b3 100755
>> --- a/git-bisect.sh
>> +++ b/git-bisect.sh
>> @@ -437,6 +437,7 @@ bisect_next() {
>> "refs/bisect/skip-*" | tr '\012' ' ') &&
>>
>> # Maybe some merge bases must be tested first
>> + checkout_done=0
>> check_good_are_ancestors_of_bad "$bad" "$good" "$skip" || exit
>> test "$checkout_done" -eq "1" && checkout_done='' && return
> PS: After thinking about it, I wonder if we should remove $checkout_done
> entirely and use the return value from "check_merge_bases"
> and "check_good_are_ancestors_of_bad" to know if a checkout was done.
Yup, that might make more sense. In the meantime, I suspect this makes
more sense than introducing a new state "0".
diff --git c/git-bisect.sh w/git-bisect.sh
index 69a9a56..73f01bb 100755
--- c/git-bisect.sh
+++ w/git-bisect.sh
@@ -30,6 +30,7 @@ OPTIONS_SPEC=
. git-sh-setup
require_work_tree
+checkout_done=
_x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
@@ -418,7 +419,7 @@ check_good_are_ancestors_of_bad() {
_side=$(git rev-list $_good ^$_bad)
if test -n "$_side"; then
check_merge_bases "$_bad" "$_good" "$_skip" || return
- test "$checkout_done" -eq "1" && return
+ test -n "$checkout_done" && return
fi
: > "$GIT_DIR/BISECT_ANCESTORS_OK"
@@ -438,7 +439,7 @@ bisect_next() {
# Maybe some merge bases must be tested first
check_good_are_ancestors_of_bad "$bad" "$good" "$skip" || exit
- test "$checkout_done" -eq "1" && checkout_done='' && return
+ test -n "$checkout_done" && checkout_done='' && return
# Get bisection information
BISECT_OPT=''
next prev parent reply other threads:[~2008-09-05 6:33 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-04 21:02 [PATCH] Avoid warning when bisecting a merge Gustaf Hendeby
2008-09-05 6:14 ` Christian Couder
2008-09-05 6:29 ` Junio C Hamano [this message]
2008-09-05 7:18 ` Gustaf Hendeby
2008-09-05 8:31 ` 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=7vhc8vxg04.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=chriscool@tuxfamily.org \
--cc=git@vger.kernel.org \
--cc=hendeby@isy.liu.se \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.