Joshua ben Jore <twists@xxxxxxxxx> writes: > ... The > pick list just *drops* the commit, perhaps because some layer thinks > the commit message is empty? The problem is that we use "read" in shell to read these insn in the todo list line by line, but a backslash at the end of line acts as a line continuation signal. POSIX compliant shells are supposed to understand "read -r", so perhaps something like this may help. git-rebase--interactive.sh | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index ed57552..31e6860 100755 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -450,7 +450,7 @@ record_in_rewritten() { do_next () { rm -f "$MSG" "$AUTHOR_SCRIPT" "$AMEND" || exit - read command sha1 rest < "$TODO" + read -r command sha1 rest < "$TODO" case "$command" in '#'*|''|noop) mark_action_done @@ -591,7 +591,7 @@ do_rest () { # skip picking commits whose parents are unchanged skip_unnecessary_picks () { fd=3 - while read command sha1 rest + while read -r command sha1 rest do # fd=3 means we skip the command case "$fd,$command,$(git rev-parse --verify --quiet $sha1^)" in @@ -644,13 +644,13 @@ rearrange_squash () { test -s "$1.sq" || return used= - while read pick sha1 message + while read -r pick sha1 message do case " $used" in *" $sha1 "*) continue ;; esac echo "$pick $sha1 $message" - while read squash action msg + while read -r squash action msg do case "$message" in "$msg"*) @@ -891,7 +891,7 @@ first and then run 'git rebase --continue' again." --abbrev=7 --reverse --left-right --topo-order \ $REVISIONS | \ sed -n "s/^>//p" | - while read shortsha1 rest + while read -r shortsha1 rest do if test t != "$PRESERVE_MERGES" then -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html