rebase -i: Change function make_squash_message into update_squash_message

Alter the file $SQUASH_MSG in place rather than outputting the new
message then juggling it around.  Change the function name
accordingly.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Michael Haggerty 2010-01-14 06:54:54 +01:00 committed by Junio C Hamano
parent 7756ecffe7
commit bde1a68624
1 changed files with 20 additions and 15 deletions

View File

@ -358,21 +358,26 @@ nth_string () {
esac esac
} }


make_squash_message () { update_squash_message () {
if test -f "$SQUASH_MSG"; then if test -f "$SQUASH_MSG"; then
mv "$SQUASH_MSG" "$SQUASH_MSG".bak || exit
COUNT=$(($(sed -n \ COUNT=$(($(sed -n \
-e "1s/^# This is a combination of \(.*\) commits\./\1/p" \ -e "1s/^# This is a combination of \(.*\) commits\./\1/p" \
-e "q" < "$SQUASH_MSG")+1)) -e "q" < "$SQUASH_MSG".bak)+1))
{
echo "# This is a combination of $COUNT commits." echo "# This is a combination of $COUNT commits."
sed -e 1d -e '2,/^./{ sed -e 1d -e '2,/^./{
/^$/d /^$/d
}' <"$SQUASH_MSG" }' <"$SQUASH_MSG".bak
} >$SQUASH_MSG
else else
COUNT=2 COUNT=2
{
echo "# This is a combination of 2 commits." echo "# This is a combination of 2 commits."
echo "# The first commit's message is:" echo "# The first commit's message is:"
echo echo
commit_message HEAD commit_message HEAD
} >$SQUASH_MSG
fi fi
case $1 in case $1 in
squash) squash)
@ -387,7 +392,7 @@ make_squash_message () {
echo echo
commit_message $2 | sed -e 's/^/# /' commit_message $2 | sed -e 's/^/# /'
;; ;;
esac esac >>$SQUASH_MSG
} }


peek_next_command () { peek_next_command () {
@ -450,7 +455,7 @@ do_next () {
die "Cannot '$squash_style' without a previous commit" die "Cannot '$squash_style' without a previous commit"


mark_action_done mark_action_done
make_squash_message $squash_style $sha1 > "$MSG" update_squash_message $squash_style $sha1
failed=f failed=f
author_script=$(get_author_ident_from_commit HEAD) author_script=$(get_author_ident_from_commit HEAD)
echo "$author_script" > "$AUTHOR_SCRIPT" echo "$author_script" > "$AUTHOR_SCRIPT"
@ -460,16 +465,16 @@ do_next () {
case "$(peek_next_command)" in case "$(peek_next_command)" in
squash|s|fixup|f) squash|s|fixup|f)
USE_OUTPUT=output USE_OUTPUT=output
cp "$SQUASH_MSG" "$MSG" || exit
MSG_OPT=-F MSG_OPT=-F
EDIT_OR_FILE="$MSG" EDIT_OR_FILE="$MSG"
cp "$MSG" "$SQUASH_MSG"
;; ;;
*) *)
USE_OUTPUT= USE_OUTPUT=
MSG_OPT= MSG_OPT=
EDIT_OR_FILE=-e EDIT_OR_FILE=-e
rm -f "$SQUASH_MSG" || exit cp "$SQUASH_MSG" "$MSG" || exit
cp "$MSG" "$GIT_DIR"/SQUASH_MSG mv "$SQUASH_MSG" "$GIT_DIR"/SQUASH_MSG || exit
rm -f "$GIT_DIR"/MERGE_MSG || exit rm -f "$GIT_DIR"/MERGE_MSG || exit
;; ;;
esac esac