Merge branch 'es/rebase-i-count-todo' into maint
authorJunio C Hamano <gitster@pobox.com>
Mon, 23 Mar 2015 18:23:17 +0000 (11:23 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 23 Mar 2015 18:23:17 +0000 (11:23 -0700)
"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

1  2 
git-rebase--interactive.sh
t/t3404-rebase-interactive.sh
index c96b9847e9fc2aaf67997c74a8d5c0abe78b607d,c5e117a17a4b0b31587b2c2284932e11669d7595..f7deeb096e24f4de69bdfe08f0aa35ebf170577a
@@@ -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
  
        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
                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" <<EOF
  
- $comment_char Rebase $shortrevisions onto $shortonto ($todocount TODO item(s))
+ $comment_char Rebase $shortrevisions onto $shortonto ($todocount command(s))
  EOF
  append_todo_help
  git stripspace --comment-lines >>"$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"
  
index a31f7e0430e107c1fbe036ce412d4466fa5bd2c2,5dc2caf3c58d195c239f6bf3627d3d4f469bb81b..034eb35cdf3f13686f10737267567c08e749ad1c
@@@ -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