Merge branch 'gr/rebase-i-drop-warn' into maint
Recent update to "rebase -i" that tries to sanity check the edited insn sheet before it uses it has become too picky on Windows where CRLF left by the editor is turned into a trailing CR on the line read via the "read" built-in command. * gr/rebase-i-drop-warn: rebase-i: work around Windows CRLF line endings t3404: "rebase -i" gets broken when insn sheet uses CR/LF line endings
This commit is contained in:
@ -77,6 +77,10 @@ amend="$state_dir"/amend
|
|||||||
rewritten_list="$state_dir"/rewritten-list
|
rewritten_list="$state_dir"/rewritten-list
|
||||||
rewritten_pending="$state_dir"/rewritten-pending
|
rewritten_pending="$state_dir"/rewritten-pending
|
||||||
|
|
||||||
|
# Work around Git for Windows' Bash whose "read" does not strip CRLF
|
||||||
|
# and leaves CR at the end instead.
|
||||||
|
cr=$(printf "\015")
|
||||||
|
|
||||||
strategy_args=
|
strategy_args=
|
||||||
if test -n "$do_merge"
|
if test -n "$do_merge"
|
||||||
then
|
then
|
||||||
@ -518,6 +522,10 @@ do_next () {
|
|||||||
"$comment_char"*|''|noop|drop|d)
|
"$comment_char"*|''|noop|drop|d)
|
||||||
mark_action_done
|
mark_action_done
|
||||||
;;
|
;;
|
||||||
|
"$cr")
|
||||||
|
# Work around CR left by "read" (e.g. with Git for Windows' Bash).
|
||||||
|
mark_action_done
|
||||||
|
;;
|
||||||
pick|p)
|
pick|p)
|
||||||
comment_for_reflog pick
|
comment_for_reflog pick
|
||||||
|
|
||||||
@ -896,6 +904,10 @@ check_bad_cmd_and_sha () {
|
|||||||
"$comment_char"*|''|noop|x|exec)
|
"$comment_char"*|''|noop|x|exec)
|
||||||
# Doesn't expect a SHA-1
|
# Doesn't expect a SHA-1
|
||||||
;;
|
;;
|
||||||
|
"$cr")
|
||||||
|
# Work around CR left by "read" (e.g. with Git for
|
||||||
|
# Windows' Bash).
|
||||||
|
;;
|
||||||
pick|p|drop|d|reword|r|edit|e|squash|s|fixup|f)
|
pick|p|drop|d|reword|r|edit|e|squash|s|fixup|f)
|
||||||
if ! check_commit_sha "${rest%%[ ]*}" "$lineno" "$1"
|
if ! check_commit_sha "${rest%%[ ]*}" "$lineno" "$1"
|
||||||
then
|
then
|
||||||
|
@ -1261,4 +1261,16 @@ test_expect_success 'static check of bad SHA-1' '
|
|||||||
test E = $(git cat-file commit HEAD | sed -ne \$p)
|
test E = $(git cat-file commit HEAD | sed -ne \$p)
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'editor saves as CR/LF' '
|
||||||
|
git checkout -b with-crlf &&
|
||||||
|
write_script add-crs.sh <<-\EOF &&
|
||||||
|
sed -e "s/\$/Q/" <"$1" | tr Q "\\015" >"$1".new &&
|
||||||
|
mv -f "$1".new "$1"
|
||||||
|
EOF
|
||||||
|
(
|
||||||
|
test_set_editor "$(pwd)/add-crs.sh" &&
|
||||||
|
git rebase -i HEAD^
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Reference in New Issue
Block a user