From: Junio C Hamano Date: Mon, 23 Mar 2015 18:23:17 +0000 (-0700) Subject: Merge branch 'es/rebase-i-count-todo' into maint X-Git-Tag: v2.3.4~10 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/f63ed085e20da82a8b7b49d90c61d0eb1b2ed19d?ds=inline;hp=-c Merge branch 'es/rebase-i-count-todo' into maint "git rebase -i" recently started to include the number of commits in the insn sheet to be processed, but on a platform that prepends leading whitespaces to "wc -l" output, the numbers are shown with extra whitespaces that aren't necessary. * es/rebase-i-count-todo: rebase-interactive: re-word "item count" comment rebase-interactive: suppress whitespace preceding item count --- f63ed085e20da82a8b7b49d90c61d0eb1b2ed19d diff --combined git-rebase--interactive.sh index c96b9847e9,c5e117a17a..f7deeb096e --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@@ -961,13 -961,14 +961,13 @@@ els revisions=$onto...$orig_head shortrevisions=$shorthead fi -git rev-list $merges_option --pretty=oneline --abbrev-commit \ - --abbrev=7 --reverse --left-right --topo-order \ +git rev-list $merges_option --pretty=oneline --reverse --left-right --topo-order \ $revisions ${restrict_revision+^$restrict_revision} | \ sed -n "s/^>//p" | -while read -r shortsha1 rest +while read -r sha1 rest do - if test -z "$keep_empty" && is_empty_commit $shortsha1 && ! is_merge_commit $shortsha1 + if test -z "$keep_empty" && is_empty_commit $sha1 && ! is_merge_commit $sha1 then comment_out="$comment_char " else @@@ -976,8 -977,9 +976,8 @@@ if test t != "$preserve_merges" then - printf '%s\n' "${comment_out}pick $shortsha1 $rest" >>"$todo" + printf '%s\n' "${comment_out}pick $sha1 $rest" >>"$todo" else - sha1=$(git rev-parse $shortsha1) if test -z "$rebase_root" then preserve=t @@@ -994,7 -996,7 +994,7 @@@ if test f = "$preserve" then touch "$rewritten"/$sha1 - printf '%s\n' "${comment_out}pick $shortsha1 $rest" >>"$todo" + printf '%s\n' "${comment_out}pick $sha1 $rest" >>"$todo" fi fi done @@@ -1018,8 -1020,8 +1018,8 @@@ the # just the history of its first-parent for others that will # be rebasing on top of it git rev-list --parents -1 $rev | cut -d' ' -s -f2 > "$dropped"/$rev - short=$(git rev-list -1 --abbrev-commit --abbrev=7 $rev) - sane_grep -v "^[a-z][a-z]* $short" <"$todo" > "${todo}2" ; mv "${todo}2" "$todo" + sha1=$(git rev-list -1 $rev) + sane_grep -v "^[a-z][a-z]* $sha1" <"$todo" > "${todo}2" ; mv "${todo}2" "$todo" rm "$rewritten"/$rev fi done @@@ -1030,10 -1032,11 +1030,11 @@@ test -n "$autosquash" && rearrange_squa test -n "$cmd" && add_exec_commands "$todo" todocount=$(git stripspace --strip-comments <"$todo" | wc -l) + todocount=${todocount##* } cat >>"$todo" <>"$todo" <<\EOF @@@ -1052,7 -1055,6 +1053,7 @@@ has_action "$todo" | return 2 cp "$todo" "$todo".backup +collapse_todo_ids git_sequence_editor "$todo" || die_abort "Could not execute editor" diff --combined t/t3404-rebase-interactive.sh index a31f7e0430,5dc2caf3c5..034eb35cdf --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@@ -1039,11 -1039,13 +1039,20 @@@ test_expect_success 'short SHA-1 collid ) ' +test_expect_success 'respect core.abbrev' ' + git config core.abbrev 12 && + set_cat_todo_editor && + test_must_fail git rebase -i HEAD~4 >todo-list && + test 4 = $(grep -c "pick [0-9a-f]\{12,\}" todo-list) +' + + test_expect_success 'todo count' ' + write_script dump-raw.sh <<-\EOF && + cat "$1" + EOF + test_set_editor "$(pwd)/dump-raw.sh" && + git rebase -i HEAD~4 >actual && + grep "^# Rebase ..* onto ..* ([0-9]" actual + ' + test_done