rebase -i: Extract a function "commit_message"

...instead of repeating the same short but slightly obscure blob of
code in several places.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Michael Haggerty 2010-01-14 06:54:51 +01:00 committed by Junio C Hamano
parent f99e269c44
commit ee0a4afbe2

View file

@ -118,6 +118,11 @@ output () {
esac esac
} }
# Output the commit message for the specified commit.
commit_message () {
git cat-file commit "$1" | sed "1,/^$/d"
}
run_pre_rebase_hook () { run_pre_rebase_hook () {
if test -z "$OK_TO_SKIP_PRE_REBASE" && if test -z "$OK_TO_SKIP_PRE_REBASE" &&
test -x "$GIT_DIR/hooks/pre-rebase" test -x "$GIT_DIR/hooks/pre-rebase"
@ -178,7 +183,7 @@ make_patch () {
;; ;;
esac > "$DOTEST"/patch esac > "$DOTEST"/patch
test -f "$MSG" || test -f "$MSG" ||
git cat-file commit "$1" | sed "1,/^$/d" > "$MSG" commit_message "$1" > "$MSG"
test -f "$AUTHOR_SCRIPT" || test -f "$AUTHOR_SCRIPT" ||
get_author_ident_from_commit "$1" > "$AUTHOR_SCRIPT" get_author_ident_from_commit "$1" > "$AUTHOR_SCRIPT"
} }
@ -316,7 +321,7 @@ pick_one_preserving_merges () {
# redo merge # redo merge
author_script=$(get_author_ident_from_commit $sha1) author_script=$(get_author_ident_from_commit $sha1)
eval "$author_script" eval "$author_script"
msg="$(git cat-file commit $sha1 | sed -e '1,/^$/d')" msg="$(commit_message $sha1)"
# No point in merging the first parent, that's HEAD # No point in merging the first parent, that's HEAD
new_parents=${new_parents# $first_parent} new_parents=${new_parents# $first_parent}
if ! GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME" \ if ! GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME" \
@ -361,20 +366,20 @@ make_squash_message () {
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
git cat-file commit HEAD | sed -e '1,/^$/d' commit_message HEAD
fi fi
case $1 in case $1 in
squash) squash)
echo echo
echo "# This is the $(nth_string $COUNT) commit message:" echo "# This is the $(nth_string $COUNT) commit message:"
echo echo
git cat-file commit $2 | sed -e '1,/^$/d' commit_message $2
;; ;;
fixup) fixup)
echo echo
echo "# The $(nth_string $COUNT) commit message will be skipped:" echo "# The $(nth_string $COUNT) commit message will be skipped:"
echo echo
git cat-file commit $2 | sed -e '1,/^$/d' -e 's/^/# /' commit_message $2 | sed -e 's/^/# /'
;; ;;
esac esac
} }