From: Stephan Beyer <s-beyer@gmx.net>
To: Christian Couder <christian.couder@gmail.com>
Cc: git <git@vger.kernel.org>
Subject: Re: [PATCH 02/16] bisect: add test for the bisect algorithm
Date: Fri, 26 Feb 2016 22:38:40 +0100 [thread overview]
Message-ID: <56D0C5E0.2020703@gmx.net> (raw)
In-Reply-To: <CAP8UFD2szf46skWmgZi3kSkh3D0aeMPw4TagUQa7KZ-z6pHdAA@mail.gmail.com>
Hi Christian,
On 02/26/2016 07:53 AM, Christian Couder wrote:
>> +test_expect_success 'bisect algorithm works in linear history with an odd number of commits' '
>> + git bisect start A7 &&
>> + git bisect next &&
>> + test "$(git rev-parse HEAD)" = "$(git rev-parse A3)" \
>> + -o "$(git rev-parse HEAD)" = "$(git rev-parse A4)"
>
> I thought that we should not use "-o" and "-a" but instead "|| test"
> and "&& test".
Why is this? I understand the && instead of -a thing (test atomicity),
however, for || this results in an ugly
+ git bisect next &&
+ ( test "$(git rev-parse HEAD)" = "$(git rev-parse A3)" ||
+ test "$(git rev-parse HEAD)" = "$(git rev-parse A4)" )
Right? (Otherwise a failure of e.g. "git bisect start A7" would run
the command after || (which may still be fine in some cases but is wrong
in most of the other cases).
However, what do you think about this?
diff --git a/t/t8010-bisect-algorithm.sh b/t/t8010-bisect-algorithm.sh
index bda59da..ae50e7c 100755
--- a/t/t8010-bisect-algorithm.sh
+++ b/t/t8010-bisect-algorithm.sh
@@ -8,6 +8,16 @@ exec </dev/null
. ./test-lib.sh
+test_compare_rev () {
+ arg="$(git rev-parse "$1")"
+ shift
+ for rev
+ do
+ test "$arg" = "$(git rev-parse "$rev")" && return 0
+ done
+ return 1
+}
+
test_expect_success 'set up a history for the test' '
test_commit A1 A 1 &&
test_commit A2 A 2 &&
@@ -48,27 +58,25 @@ test_expect_success 'set up a history for the test' '
test_expect_success 'bisect algorithm works in linear history with an
odd number of commits' '
git bisect start A7 &&
git bisect next &&
- test "$(git rev-parse HEAD)" = "$(git rev-parse A3)" \
- -o "$(git rev-parse HEAD)" = "$(git rev-parse A4)"
+ test_compare_rev HEAD A3 A4
'
and so on...
See
https://github.com/sbeyer/git/commit/2c224093ccee837a7f0f62f6af6a0a804d07c022
(test_compare_rev() could also go into test-lib.sh)
Cheers
Stephan
next prev parent reply other threads:[~2016-02-26 21:38 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-26 2:04 [PATCH 00/16] git bisect improvements Stephan Beyer
2016-02-26 2:04 ` [PATCH 01/16] bisect: write about `bisect next` in documentation Stephan Beyer
2016-02-26 8:02 ` Jacob Keller
2016-02-26 18:47 ` Junio C Hamano
2016-02-27 13:45 ` Stephan Beyer
2016-02-27 18:03 ` Junio C Hamano
2016-02-27 19:38 ` Stephan Beyer
2016-02-28 18:28 ` Junio C Hamano
2016-02-26 2:04 ` [PATCH 02/16] bisect: add test for the bisect algorithm Stephan Beyer
2016-02-26 6:53 ` Christian Couder
2016-02-26 21:38 ` Stephan Beyer [this message]
2016-02-27 11:40 ` Christian Couder
2016-02-27 12:42 ` Matthieu Moy
2016-02-26 2:04 ` [PATCH 03/16] bisect: make bisect compile if DEBUG_BISECT is set Stephan Beyer
2016-02-26 2:04 ` [PATCH 04/16] bisect: make algorithm behavior independent of DEBUG_BISECT Stephan Beyer
2016-02-26 2:04 ` [PATCH 05/16] bisect: get rid of recursion in count_distance() Stephan Beyer
2016-02-26 2:04 ` [PATCH 06/16] bisect: use struct node_data array instead of int array Stephan Beyer
2016-02-26 2:04 ` [PATCH 07/16] bisect: replace clear_distance() by unique markers Stephan Beyer
2016-02-26 2:04 ` [PATCH 08/16] bisect: use commit instead of commit list as arguments when appropriate Stephan Beyer
2016-02-26 3:10 ` Junio C Hamano
2016-02-26 2:04 ` [PATCH 09/16] bisect: extract get_distance() function from code duplication Stephan Beyer
2016-02-26 2:04 ` [PATCH 10/16] bisect: introduce distance_direction() Stephan Beyer
2016-02-26 2:04 ` [PATCH 11/16] bisect: make total number of commits global Stephan Beyer
2016-02-26 2:04 ` [PATCH 12/16] bisect: rename count_distance() to compute_weight() Stephan Beyer
2016-02-26 2:04 ` [PATCH 13/16] bisect: prepare for different algorithms based on find_all Stephan Beyer
2016-02-26 2:04 ` [PATCH 14/16] bisect: use a modified breadth-first search to find relevant weights Stephan Beyer
2016-02-26 3:09 ` Junio C Hamano
2016-02-26 20:55 ` Stephan Beyer
2016-02-26 2:04 ` [PATCH 15/16] bisect: compute best bisection in compute_relevant_weights() Stephan Beyer
2016-02-26 2:04 ` [PATCH 16/16] bisect: get back halfway shortcut Stephan Beyer
2016-03-20 18:50 ` [PATCH 00/16] git bisect improvements Pranit Bauva
2016-03-21 22:22 ` Stephan Beyer
2016-03-22 7:35 ` Christian Couder
2016-03-22 11:35 ` Pranit Bauva
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=56D0C5E0.2020703@gmx.net \
--to=s-beyer@gmx.net \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
/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.