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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html