diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-04-19 23:01:51 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-04-19 23:01:51 -0700 |
commit | 41a3e3aa9bdaede9ab7afed206428c1b071060d2 (patch) | |
tree | 5c446d5c13797b117a34c309019e0131880fb1b1 | |
parent | 5634cf24766f8700804ca55f5e8567c88538a5b0 (diff) | |
parent | 5e835cac8622373724235d299f1331ac4cf81ccf (diff) | |
download | git-41a3e3aa9bdaede9ab7afed206428c1b071060d2.tar.gz git-41a3e3aa9bdaede9ab7afed206428c1b071060d2.tar.xz |
Merge branch 'jc/maint-rebase-am' into maint
* jc/maint-rebase-am:
rebase: do not munge commit log message
Conflicts:
git-am.sh
-rwxr-xr-x | git-am.sh | 19 | ||||
-rwxr-xr-x | t/t3408-rebase-multi-line.sh | 41 |
2 files changed, 55 insertions, 5 deletions
@@ -327,11 +327,20 @@ do echo "Patch is empty. Was it split wrong?" stop_here $this } - SUBJECT="$(sed -n '/^Subject/ s/Subject: //p' "$dotest/info")" - case "$keep_subject" in -k) SUBJECT="[PATCH] $SUBJECT" ;; esac - - (printf '%s\n\n' "$SUBJECT"; cat "$dotest/msg") | - git stripspace > "$dotest/msg-clean" + if test -f "$dotest/rebasing" && + commit=$(sed -e 's/^From \([0-9a-f]*\) .*/\1/' \ + -e q "$dotest/$msgnum") && + test "$(git cat-file -t "$commit")" = commit + then + git cat-file commit "$commit" | + sed -e '1,/^$/d' >"$dotest/msg-clean" + else + SUBJECT="$(sed -n '/^Subject/ s/Subject: //p' "$dotest/info")" + case "$keep_subject" in -k) SUBJECT="[PATCH] $SUBJECT" ;; esac + + (printf '%s\n\n' "$SUBJECT"; cat "$dotest/msg") | + git stripspace > "$dotest/msg-clean" + fi ;; esac diff --git a/t/t3408-rebase-multi-line.sh b/t/t3408-rebase-multi-line.sh new file mode 100755 index 000000000..e12cd578e --- /dev/null +++ b/t/t3408-rebase-multi-line.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +test_description='rebasing a commit with multi-line first paragraph.' + +. ./test-lib.sh + +test_expect_success setup ' + + >file && + git add file && + test_tick && + git commit -m initial && + + echo hello >file && + test_tick && + git commit -a -m "A sample commit log message that has a long +summary that spills over multiple lines. + +But otherwise with a sane description." + + git branch side && + + git reset --hard HEAD^ && + >elif && + git add elif && + test_tick && + git commit -m second + +' + +test_expect_success rebase ' + + git checkout side && + git rebase master && + git cat-file commit HEAD | sed -e "1,/^$/d" >actual && + git cat-file commit side@{1} | sed -e "1,/^$/d" >expect && + test_cmp expect actual + +' + +test_done |