summaryrefslogtreecommitdiff
path: root/git-bisect.sh
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-02-27 09:03:21 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-02-27 09:03:21 (GMT)
commit0c3473561610ac9f94c65f64178d2a66ee73eb64 (patch)
treef9a0e7206274b34946cc459683604c5f549a58f0 /git-bisect.sh
parent2d56a136435bd40f9b6b75103eb4d75003154c9f (diff)
parent1b249ffe8dff12849e3e215b46b245daecfadba0 (diff)
downloadgit-0c3473561610ac9f94c65f64178d2a66ee73eb64.zip
git-0c3473561610ac9f94c65f64178d2a66ee73eb64.tar.gz
git-0c3473561610ac9f94c65f64178d2a66ee73eb64.tar.bz2
Merge branch 'cc/maint-1.6.0-bisect-fix'
* cc/maint-1.6.0-bisect-fix: bisect: fix quoting TRIED revs when "bad" commit is also "skip"ped Conflicts: git-bisect.sh
Diffstat (limited to 'git-bisect.sh')
-rwxr-xr-xgit-bisect.sh76
1 files changed, 41 insertions, 35 deletions
diff --git a/git-bisect.sh b/git-bisect.sh
index 85db4ba..a857db4 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -290,56 +290,62 @@ filter_skipped() {
# Let's parse the output of:
# "git rev-list --bisect-vars --bisect-all ..."
- eval "$_eval" | while read hash line
- do
- case "$VARS,$FOUND,$TRIED,$hash" in
- # We display some vars.
- 1,*,*,*) echo "$hash $line" ;;
-
- # Split line.
- ,*,*,---*) ;;
-
- # We had nothing to search.
+ eval "$_eval" | {
+ VARS= FOUND= TRIED=
+ while read hash line
+ do
+ case "$VARS,$FOUND,$TRIED,$hash" in
+ 1,*,*,*)
+ # "bisect_foo=bar" read from rev-list output.
+ echo "$hash &&"
+ ;;
+ ,*,*,---*)
+ # Separator
+ ;;
,,,bisect_rev*)
- echo "bisect_rev="
+ # We had nothing to search.
+ echo "bisect_rev= &&"
VARS=1
;;
-
- # We did not find a good bisect rev.
- # This should happen only if the "bad"
- # commit is also a "skip" commit.
,,*,bisect_rev*)
- echo "bisect_rev=$TRIED"
+ # We did not find a good bisect rev.
+ # This should happen only if the "bad"
+ # commit is also a "skip" commit.
+ echo "bisect_rev='$TRIED' &&"
VARS=1
;;
-
- # We are searching.
,,*,*)
+ # We are searching.
TRIED="${TRIED:+$TRIED|}$hash"
case "$_skip" in
*$hash*) ;;
*)
- echo "bisect_rev=$hash"
- echo "bisect_tried=\"$TRIED\""
+ echo "bisect_rev=$hash &&"
+ echo "bisect_tried='$TRIED' &&"
FOUND=1
;;
esac
;;
-
- # We have already found a rev to be tested.
- ,1,*,bisect_rev*) VARS=1 ;;
- ,1,*,*) ;;
-
- # ???
- *) die "filter_skipped error " \
- "VARS: '$VARS' " \
- "FOUND: '$FOUND' " \
- "TRIED: '$TRIED' " \
- "hash: '$hash' " \
- "line: '$line'"
- ;;
- esac
- done
+ ,1,*,bisect_rev*)
+ # We have already found a rev to be tested.
+ VARS=1
+ ;;
+ ,1,*,*)
+ ;;
+ *)
+ # Unexpected input
+ echo "die 'filter_skipped error'"
+ die "filter_skipped error " \
+ "VARS: '$VARS' " \
+ "FOUND: '$FOUND' " \
+ "TRIED: '$TRIED' " \
+ "hash: '$hash' " \
+ "line: '$line'"
+ ;;
+ esac
+ done
+ echo ':'
+ }
}
exit_if_skipped_commits () {