summaryrefslogtreecommitdiff
path: root/t/t3405-rebase-malformed.sh
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2007-07-28 17:57:25 -0700
committerJunio C Hamano <gitster@pobox.com>2007-07-29 23:29:04 -0700
commitd7f6bae28142e07e544efdab73260cf9f60ca899 (patch)
treebf55bb8793862418110af379a1aa7cc19ad2d317 /t/t3405-rebase-malformed.sh
parent283884422f35594db9eab491d3f8c91e49f9d62f (diff)
downloadgit-d7f6bae28142e07e544efdab73260cf9f60ca899.tar.gz
rebase: try not to munge commit log message
This makes rebase/am keep the original commit log message better, even when it does not conform to "single line paragraph to say what it does, then explain and defend why it is a good change in later paragraphs" convention. This change is a two-edged sword. While the earlier behaviour would make such commit log messages more friendly to readers who expect to get the birds-eye view with oneline summary formats, users who primarily use git as a way to interact with foreign SCM systems would not care much about the convenience of oneline git log tools, but care more about preserving their own convention. This changes their commits less useful to readers who read them with git tools while keeping them more consistent with the foreign SCM systems they interact with. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t3405-rebase-malformed.sh')
-rwxr-xr-xt/t3405-rebase-malformed.sh48
1 files changed, 48 insertions, 0 deletions
diff --git a/t/t3405-rebase-malformed.sh b/t/t3405-rebase-malformed.sh
new file mode 100755
index 0000000000..e4e2e649ed
--- /dev/null
+++ b/t/t3405-rebase-malformed.sh
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+test_description='rebase should not insist on git message convention'
+
+. ./test-lib.sh
+
+cat >F <<\EOF
+This is an example of a commit log message
+that does not conform to git commit convention.
+
+It has two paragraphs, but its first paragraph is not friendly
+to oneline summary format.
+EOF
+
+test_expect_success setup '
+
+ >file1 &&
+ >file2 &&
+ git add file1 file2 &&
+ test_tick &&
+ git commit -m "Initial commit" &&
+
+ git checkout -b side &&
+ cat F >file2 &&
+ git add file2 &&
+ test_tick &&
+ git commit -F F &&
+
+ git cat-file commit HEAD | sed -e "1,/^\$/d" >F0 &&
+
+ git checkout master &&
+
+ echo One >file1 &&
+ test_tick &&
+ git add file1 &&
+ git commit -m "Second commit"
+'
+
+test_expect_success rebase '
+
+ git rebase master side &&
+ git cat-file commit HEAD | sed -e "1,/^\$/d" >F1 &&
+
+ diff -u F0 F1 &&
+ diff -u F F0
+'
+
+test_done