Skip to content

Commit

Permalink
Merge branch 'gr/rebase-i-drop-warn'
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Junio C Hamano committed Oct 30, 2015
2 parents 7fd4181 + 39743cf commit f60b5dc
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
12 changes: 12 additions & 0 deletions git-rebase--interactive.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down
12 changes: 12 additions & 0 deletions t/t3404-rebase-interactive.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit f60b5dc

Please sign in to comment.