]>
Commit | Line | Data |
---|---|---|
59f5ced6 BG |
1 | #!/bin/sh |
2 | ||
3 | test_description='git rebase --whitespace=fix | |
4 | ||
5 | This test runs git rebase --whitespace=fix and make sure that it works. | |
6 | ' | |
7 | ||
8 | . ./test-lib.sh | |
9 | ||
10 | # prepare initial revision of "file" with a blank line at the end | |
11 | cat >file <<EOF | |
12 | a | |
13 | b | |
14 | c | |
15 | ||
16 | EOF | |
17 | ||
18 | # expected contents in "file" after rebase | |
19 | cat >expect-first <<EOF | |
20 | a | |
21 | b | |
22 | c | |
23 | EOF | |
24 | ||
25 | # prepare second revision of "file" | |
26 | cat >second <<EOF | |
27 | a | |
28 | b | |
29 | c | |
30 | ||
31 | d | |
32 | e | |
33 | f | |
34 | ||
35 | ||
36 | ||
37 | ||
38 | EOF | |
39 | ||
40 | # expected contents in second revision after rebase | |
41 | cat >expect-second <<EOF | |
42 | a | |
43 | b | |
44 | c | |
45 | ||
46 | d | |
47 | e | |
48 | f | |
49 | EOF | |
50 | ||
51 | test_expect_success 'blank line at end of file; extend at end of file' ' | |
52 | git commit --allow-empty -m "Initial empty commit" && | |
53 | git add file && git commit -m first && | |
54 | mv second file && | |
55 | git add file && git commit -m second && | |
56 | git rebase --whitespace=fix HEAD^^ && | |
57 | git diff --exit-code HEAD^:file expect-first && | |
58 | test_cmp file expect-second | |
59 | ' | |
60 | ||
61 | # prepare third revision of "file" | |
62 | sed -e's/Z//' >third <<EOF | |
63 | a | |
64 | b | |
65 | c | |
66 | ||
67 | d | |
68 | e | |
69 | f | |
70 | Z | |
71 | Z | |
72 | h | |
73 | i | |
74 | j | |
75 | k | |
76 | l | |
77 | EOF | |
78 | ||
79 | sed -e's/ //g' <third >expect-third | |
80 | ||
81 | test_expect_success 'two blanks line at end of file; extend at end of file' ' | |
82 | cp third file && git add file && git commit -m third && | |
83 | git rebase --whitespace=fix HEAD^^ && | |
84 | git diff --exit-code HEAD^:file expect-second && | |
85 | test_cmp file expect-third | |
86 | ' | |
87 | ||
88 | test_expect_success 'same, but do not remove trailing spaces' ' | |
89 | git config core.whitespace "-blank-at-eol" && | |
90 | git reset --hard HEAD^ && | |
91 | cp third file && git add file && git commit -m third && | |
a48fcd83 | 92 | git rebase --whitespace=fix HEAD^^ && |
59f5ced6 BG |
93 | git diff --exit-code HEAD^:file expect-second && |
94 | test_cmp file third | |
95 | ' | |
96 | ||
97 | sed -e's/Z//' >beginning <<EOF | |
98 | a | |
99 | Z | |
100 | Z | |
101 | EOF | |
102 | ||
103 | cat >expect-beginning <<EOF | |
104 | a | |
105 | ||
106 | ||
107 | 1 | |
108 | 2 | |
109 | 3 | |
110 | 4 | |
111 | 5 | |
112 | EOF | |
113 | ||
114 | test_expect_success 'at beginning of file' ' | |
115 | git config core.whitespace "blank-at-eol" && | |
116 | cp beginning file && | |
117 | git commit -m beginning file && | |
118 | for i in 1 2 3 4 5; do | |
119 | echo $i | |
120 | done >> file && | |
121 | git commit -m more file && | |
122 | git rebase --whitespace=fix HEAD^^ && | |
123 | test_cmp file expect-beginning | |
124 | ' | |
125 | ||
126 | test_done |