summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2020-05-14 14:39:41 -0700
committerJunio C Hamano <gitster@pobox.com>2020-05-14 14:39:41 -0700
commitf9dbe28d62f9d7f110149ba78f4af7ef50ab1181 (patch)
tree69ddef2a139b4c7c6e456979636c8849c87aee8c
parent35837307586a92c0d510392c2ee66b82fa66d5b5 (diff)
parent6c722cbe5a919166eb0d7369762b09393eb5b518 (diff)
downloadgit-f9dbe28d62f9d7f110149ba78f4af7ef50ab1181.tar.xz
Merge branch 'cw/bisect-replay-with-dos'
"git bisect replay" had trouble with input files when they used CRLF line ending, which has been corrected. * cw/bisect-replay-with-dos: bisect: allow CRLF line endings in "git bisect replay" input
-rwxr-xr-xgit-bisect.sh2
-rwxr-xr-xt/t6030-bisect-porcelain.sh7
2 files changed, 9 insertions, 0 deletions
diff --git a/git-bisect.sh b/git-bisect.sh
index efee12b8b1..71b367a944 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -209,6 +209,7 @@ bisect_replay () {
test "$#" -eq 1 || die "$(gettext "No logfile given")"
test -r "$file" || die "$(eval_gettext "cannot read \$file for replaying")"
git bisect--helper --bisect-reset || exit
+ oIFS="$IFS" IFS="$IFS$(printf '\015')"
while read git bisect command rev
do
test "$git $bisect" = "git bisect" || test "$git" = "git-bisect" || continue
@@ -232,6 +233,7 @@ bisect_replay () {
die "$(gettext "?? what are you talking about?")" ;;
esac
done <"$file"
+ IFS="$oIFS"
bisect_auto_next
}
diff --git a/t/t6030-bisect-porcelain.sh b/t/t6030-bisect-porcelain.sh
index 1313142564..ac31faefa1 100755
--- a/t/t6030-bisect-porcelain.sh
+++ b/t/t6030-bisect-porcelain.sh
@@ -792,6 +792,13 @@ test_expect_success 'bisect replay with old and new' '
git bisect reset
'
+test_expect_success 'bisect replay with CRLF log' '
+ append_cr <log_to_replay.txt >log_to_replay_crlf.txt &&
+ git bisect replay log_to_replay_crlf.txt >bisect_result_crlf &&
+ grep "$HASH2 is the first new commit" bisect_result_crlf &&
+ git bisect reset
+'
+
test_expect_success 'bisect cannot mix old/new and good/bad' '
git bisect start &&
git bisect bad $HASH4 &&