Merge branch 'ks/rebase-i-abbrev' into maint
authorJunio C Hamano <gitster@pobox.com>
Thu, 5 Mar 2015 21:12:56 +0000 (13:12 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 5 Mar 2015 21:12:56 +0000 (13:12 -0800)
The insn sheet "git rebase -i" creates did not fully honor
core.abbrev settings.

* ks/rebase-i-abbrev:
rebase -i: use full object name internally throughout the script

1  2 
git-rebase--interactive.sh
index c6a4629cbc2b69d3e6dfabe5e124384fe7fe611c,6f520d843e6dd4f7fc69b42407fae7f631bb307e..c96b9847e9fc2aaf67997c74a8d5c0abe78b607d
@@@ -961,14 -961,13 +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
@@@ -1020,8 -1018,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
@@@ -1031,11 -1029,9 +1029,11 @@@ test -s "$todo" || echo noop >> "$todo
  test -n "$autosquash" && rearrange_squash "$todo"
  test -n "$cmd" && add_exec_commands "$todo"
  
 +todocount=$(git stripspace --strip-comments <"$todo" | wc -l)
 +
  cat >>"$todo" <<EOF
  
 -$comment_char Rebase $shortrevisions onto $shortonto
 +$comment_char Rebase $shortrevisions onto $shortonto ($todocount TODO item(s))
  EOF
  append_todo_help
  git stripspace --comment-lines >>"$todo" <<\EOF
@@@ -1054,6 -1050,7 +1052,7 @@@ has_action "$todo" |
        return 2
  
  cp "$todo" "$todo".backup
+ collapse_todo_ids
  git_sequence_editor "$todo" ||
        die_abort "Could not execute editor"