blob: 19eddadcf734951b22246c6dd0a16d517f111b5b [file] [log] [blame]
Junio C Hamanod7f6bae2007-07-28 17:57:25 -07001#!/bin/sh
2
Martin von Zweigbergka2309492012-06-26 07:51:56 -07003test_description='rebase should handle arbitrary git message'
Junio C Hamanod7f6bae2007-07-28 17:57:25 -07004
5. ./test-lib.sh
6
7cat >F <<\EOF
8This is an example of a commit log message
9that does not conform to git commit convention.
10
11It has two paragraphs, but its first paragraph is not friendly
12to oneline summary format.
13EOF
14
Martin von Zweigbergka2309492012-06-26 07:51:56 -070015cat >G <<\EOF
16commit log message containing a diff
17EOF
18
19
Junio C Hamanod7f6bae2007-07-28 17:57:25 -070020test_expect_success setup '
21
22 >file1 &&
23 >file2 &&
24 git add file1 file2 &&
25 test_tick &&
26 git commit -m "Initial commit" &&
Martin von Zweigbergka2309492012-06-26 07:51:56 -070027 git branch diff-in-message
Junio C Hamanod7f6bae2007-07-28 17:57:25 -070028
Martin von Zweigbergka2309492012-06-26 07:51:56 -070029 git checkout -b multi-line-subject &&
Junio C Hamanod7f6bae2007-07-28 17:57:25 -070030 cat F >file2 &&
31 git add file2 &&
32 test_tick &&
33 git commit -F F &&
34
35 git cat-file commit HEAD | sed -e "1,/^\$/d" >F0 &&
36
Martin von Zweigbergka2309492012-06-26 07:51:56 -070037 git checkout diff-in-message &&
38 echo "commit log message containing a diff" >G &&
39 echo "" >>G
40 cat G >file2 &&
41 git add file2 &&
42 git diff --cached >>G &&
43 test_tick &&
44 git commit -F G &&
45
46 git cat-file commit HEAD | sed -e "1,/^\$/d" >G0 &&
47
Junio C Hamanod7f6bae2007-07-28 17:57:25 -070048 git checkout master &&
49
50 echo One >file1 &&
51 test_tick &&
52 git add file1 &&
53 git commit -m "Second commit"
54'
55
Martin von Zweigbergka2309492012-06-26 07:51:56 -070056test_expect_success 'rebase commit with multi-line subject' '
Junio C Hamanod7f6bae2007-07-28 17:57:25 -070057
Martin von Zweigbergka2309492012-06-26 07:51:56 -070058 git rebase master multi-line-subject &&
Junio C Hamanod7f6bae2007-07-28 17:57:25 -070059 git cat-file commit HEAD | sed -e "1,/^\$/d" >F1 &&
60
Jeff King82ebb0b2008-03-12 17:36:36 -040061 test_cmp F0 F1 &&
62 test_cmp F F0
Junio C Hamanod7f6bae2007-07-28 17:57:25 -070063'
64
Martin von Zweigbergka2309492012-06-26 07:51:56 -070065test_expect_success 'rebase commit with diff in message' '
66 git rebase master diff-in-message &&
67 git cat-file commit HEAD | sed -e "1,/^$/d" >G1 &&
68 test_cmp G0 G1 &&
69 test_cmp G G0
70'
71
Junio C Hamanod7f6bae2007-07-28 17:57:25 -070072test_done