mirror of
https://github.com/git/git.git
synced 2024-10-31 22:37:54 +01:00
Merge branch 'gr/rebase-i-drop-warn'
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:
commit
f60b5dc68c
2 changed files with 24 additions and 0 deletions
|
@ -77,6 +77,10 @@ amend="$state_dir"/amend
|
|||
rewritten_list="$state_dir"/rewritten-list
|
||||
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=
|
||||
if test -n "$do_merge"
|
||||
then
|
||||
|
@ -518,6 +522,10 @@ do_next () {
|
|||
"$comment_char"*|''|noop|drop|d)
|
||||
mark_action_done
|
||||
;;
|
||||
"$cr")
|
||||
# Work around CR left by "read" (e.g. with Git for Windows' Bash).
|
||||
mark_action_done
|
||||
;;
|
||||
pick|p)
|
||||
comment_for_reflog pick
|
||||
|
||||
|
@ -896,6 +904,10 @@ check_bad_cmd_and_sha () {
|
|||
"$comment_char"*|''|noop|x|exec)
|
||||
# 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)
|
||||
if ! check_commit_sha "${rest%%[ ]*}" "$lineno" "$1"
|
||||
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_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
|
||||
|
|
Loading…
Reference in a new issue