Skip to content

Commit

Permalink
Merge branch 'es/rebase-i-no-abbrev' into maint
Browse files Browse the repository at this point in the history
* es/rebase-i-no-abbrev:
  rebase -i: fix short SHA-1 collision
  t3404: rebase -i: demonstrate short SHA-1 collision
  t3404: make tests more self-contained

Conflicts:
	t/t3404-rebase-interactive.sh
  • Loading branch information
Junio C Hamano committed Oct 17, 2013
2 parents 9a3a02b + 75c6976 commit f8a3fd2
Show file tree
Hide file tree
Showing 2 changed files with 117 additions and 2 deletions.
30 changes: 30 additions & 0 deletions git-rebase--interactive.sh
Original file line number Diff line number Diff line change
Expand Up @@ -690,6 +690,32 @@ skip_unnecessary_picks () {
die "Could not skip unnecessary pick commands"
}

transform_todo_ids () {
while read -r command rest
do
case "$command" in
"$comment_char"* | exec)
# Be careful for oddball commands like 'exec'
# that do not have a SHA-1 at the beginning of $rest.
;;
*)
sha1=$(git rev-parse --verify --quiet "$@" ${rest%% *}) &&
rest="$sha1 ${rest#* }"
;;
esac
printf '%s\n' "$command${rest:+ }$rest"
done <"$todo" >"$todo.new" &&
mv -f "$todo.new" "$todo"
}

expand_todo_ids() {
transform_todo_ids
}

collapse_todo_ids() {
transform_todo_ids --short=7
}

# Rearrange the todo list that has both "pick sha1 msg" and
# "pick sha1 fixup!/squash! msg" appears in it so that the latter
# comes immediately after the former, and change "pick" to
Expand Down Expand Up @@ -842,6 +868,7 @@ skip)
edit-todo)
git stripspace --strip-comments <"$todo" >"$todo".new
mv -f "$todo".new "$todo"
collapse_todo_ids
append_todo_help
git stripspace --comment-lines >>"$todo" <<\EOF
Expand All @@ -853,6 +880,7 @@ EOF

git_sequence_editor "$todo" ||
die "Could not execute editor"
expand_todo_ids

exit
;;
Expand Down Expand Up @@ -1009,6 +1037,8 @@ git_sequence_editor "$todo" ||
has_action "$todo" ||
die_abort "Nothing to do"

expand_todo_ids

test -d "$rewritten" || test -n "$force_rebase" || skip_unnecessary_picks

GIT_REFLOG_ACTION="$GIT_REFLOG_ACTION: checkout $onto_name"
Expand Down
Loading

0 comments on commit f8a3fd2

Please sign in to comment.