Skip to content

Commit

Permalink
rebase -i: Simplify commit counting for generated commit messages
Browse files Browse the repository at this point in the history
Read the old count from the first line of the old commit message
rather than counting the number of commit message blocks in the file.
This is simpler, faster, and more robust (e.g., it cannot be confused
by strange commit message contents).

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Michael Haggerty authored and Junio C Hamano committed Jan 14, 2010
1 parent 5065ed2 commit f99e269
Showing 1 changed file with 3 additions and 8 deletions.
11 changes: 3 additions & 8 deletions git-rebase--interactive.sh
Original file line number Diff line number Diff line change
Expand Up @@ -349,11 +349,9 @@ nth_string () {

make_squash_message () {
if test -f "$SQUASH_MSG"; then
# We want to be careful about matching only the commit
# message comment lines generated by this function.
# "[snrt][tdh]" matches the nth_string endings.
COUNT=$(($(sed -n "s/^# Th[^0-9]*\([1-9][0-9]*\)[snrt][tdh] commit message.*:/\1/p" \
< "$SQUASH_MSG" | sed -ne '$p')+1))
COUNT=$(($(sed -n \
-e "1s/^# This is a combination of \(.*\) commits\./\1/p" \
-e "q" < "$SQUASH_MSG")+1))
echo "# This is a combination of $COUNT commits."
sed -e 1d -e '2,/^./{
/^$/d
Expand All @@ -376,9 +374,6 @@ make_squash_message () {
echo
echo "# The $(nth_string $COUNT) commit message will be skipped:"
echo
# Comment the lines of the commit message out using
# "# " rather than "# " to make them less likely to
# confuse the sed regexp above.
git cat-file commit $2 | sed -e '1,/^$/d' -e 's/^/# /'
;;
esac
Expand Down

0 comments on commit f99e269

Please sign in to comment.