]>
Commit | Line | Data |
---|---|---|
cd437120 JK |
1 | #!/bin/sh |
2 | ||
3 | test_description='Test reflog display routines' | |
4 | . ./test-lib.sh | |
5 | ||
6 | test_expect_success 'setup' ' | |
7 | echo content >file && | |
8 | git add file && | |
9 | test_tick && | |
10 | git commit -m one | |
11 | ' | |
12 | ||
d3438d1a | 13 | commit=$(git rev-parse --short HEAD) |
cd437120 JK |
14 | cat >expect <<'EOF' |
15 | Reflog: HEAD@{0} (C O Mitter <committer@example.com>) | |
16 | Reflog message: commit (initial): one | |
17 | EOF | |
18 | test_expect_success 'log -g shows reflog headers' ' | |
19 | git log -g -1 >tmp && | |
20 | grep ^Reflog <tmp >actual && | |
21 | test_cmp expect actual | |
22 | ' | |
23 | ||
d3438d1a | 24 | cat >expect <<EOF |
25 | $commit HEAD@{0}: commit (initial): one | |
cd437120 JK |
26 | EOF |
27 | test_expect_success 'oneline reflog format' ' | |
28 | git log -g -1 --oneline >actual && | |
29 | test_cmp expect actual | |
30 | ' | |
31 | ||
21d2616a MG |
32 | test_expect_success 'reflog default format' ' |
33 | git reflog -1 >actual && | |
34 | test_cmp expect actual | |
35 | ' | |
36 | ||
d3438d1a | 37 | cat >expect <<EOF |
38 | commit $commit | |
21d2616a MG |
39 | Reflog: HEAD@{0} (C O Mitter <committer@example.com>) |
40 | Reflog message: commit (initial): one | |
41 | Author: A U Thor <author@example.com> | |
42 | ||
43 | one | |
44 | EOF | |
4b56cf58 | 45 | test_expect_success 'override reflog default format' ' |
21d2616a MG |
46 | git reflog --format=short -1 >actual && |
47 | test_cmp expect actual | |
48 | ' | |
49 | ||
cd437120 JK |
50 | cat >expect <<'EOF' |
51 | Reflog: HEAD@{Thu Apr 7 15:13:13 2005 -0700} (C O Mitter <committer@example.com>) | |
52 | Reflog message: commit (initial): one | |
53 | EOF | |
54 | test_expect_success 'using @{now} syntax shows reflog date (multiline)' ' | |
55 | git log -g -1 HEAD@{now} >tmp && | |
56 | grep ^Reflog <tmp >actual && | |
57 | test_cmp expect actual | |
58 | ' | |
59 | ||
d3438d1a | 60 | cat >expect <<EOF |
61 | $commit HEAD@{Thu Apr 7 15:13:13 2005 -0700}: commit (initial): one | |
cd437120 JK |
62 | EOF |
63 | test_expect_success 'using @{now} syntax shows reflog date (oneline)' ' | |
64 | git log -g -1 --oneline HEAD@{now} >actual && | |
65 | test_cmp expect actual | |
66 | ' | |
67 | ||
7904af1c JK |
68 | cat >expect <<'EOF' |
69 | HEAD@{Thu Apr 7 15:13:13 2005 -0700} | |
70 | EOF | |
71 | test_expect_success 'using @{now} syntax shows reflog date (format=%gd)' ' | |
72 | git log -g -1 --format=%gd HEAD@{now} >actual && | |
73 | test_cmp expect actual | |
74 | ' | |
75 | ||
cd437120 | 76 | cat >expect <<'EOF' |
55ccf85a | 77 | Reflog: HEAD@{Thu Apr 7 15:13:13 2005 -0700} (C O Mitter <committer@example.com>) |
cd437120 JK |
78 | Reflog message: commit (initial): one |
79 | EOF | |
80 | test_expect_success 'using --date= shows reflog date (multiline)' ' | |
55ccf85a | 81 | git log -g -1 --date=default >tmp && |
cd437120 JK |
82 | grep ^Reflog <tmp >actual && |
83 | test_cmp expect actual | |
84 | ' | |
85 | ||
d3438d1a | 86 | cat >expect <<EOF |
87 | $commit HEAD@{Thu Apr 7 15:13:13 2005 -0700}: commit (initial): one | |
cd437120 JK |
88 | EOF |
89 | test_expect_success 'using --date= shows reflog date (oneline)' ' | |
55ccf85a | 90 | git log -g -1 --oneline --date=default >actual && |
cd437120 JK |
91 | test_cmp expect actual |
92 | ' | |
93 | ||
7904af1c JK |
94 | cat >expect <<'EOF' |
95 | HEAD@{1112911993 -0700} | |
96 | EOF | |
97 | test_expect_success 'using --date= shows reflog date (format=%gd)' ' | |
98 | git log -g -1 --format=%gd --date=raw >actual && | |
99 | test_cmp expect actual | |
100 | ' | |
101 | ||
102 | cat >expect <<'EOF' | |
103 | Reflog: HEAD@{0} (C O Mitter <committer@example.com>) | |
104 | Reflog message: commit (initial): one | |
105 | EOF | |
106 | test_expect_success 'log.date does not invoke "--date" magic (multiline)' ' | |
107 | test_config log.date raw && | |
108 | git log -g -1 >tmp && | |
109 | grep ^Reflog <tmp >actual && | |
110 | test_cmp expect actual | |
111 | ' | |
112 | ||
d3438d1a | 113 | cat >expect <<EOF |
114 | $commit HEAD@{0}: commit (initial): one | |
7904af1c JK |
115 | EOF |
116 | test_expect_success 'log.date does not invoke "--date" magic (oneline)' ' | |
117 | test_config log.date raw && | |
118 | git log -g -1 --oneline >actual && | |
119 | test_cmp expect actual | |
120 | ' | |
121 | ||
122 | cat >expect <<'EOF' | |
123 | HEAD@{0} | |
124 | EOF | |
f026c756 | 125 | test_expect_success 'log.date does not invoke "--date" magic (format=%gd)' ' |
7904af1c JK |
126 | test_config log.date raw && |
127 | git log -g -1 --format=%gd >actual && | |
128 | test_cmp expect actual | |
129 | ' | |
130 | ||
794151e9 JK |
131 | cat >expect <<'EOF' |
132 | HEAD@{0} | |
133 | EOF | |
134 | test_expect_success '--date magic does not override explicit @{0} syntax' ' | |
135 | git log -g -1 --format=%gd --date=raw HEAD@{0} >actual && | |
136 | test_cmp expect actual | |
137 | ' | |
138 | ||
8fcaca3f DO |
139 | test_expect_success 'empty reflog file' ' |
140 | git branch empty && | |
d0ab0584 | 141 | git reflog expire --expire=all refs/heads/empty && |
8fcaca3f DO |
142 | |
143 | git log -g empty >actual && | |
1c5e94f4 | 144 | test_must_be_empty actual |
8fcaca3f DO |
145 | ' |
146 | ||
838f9a15 TR |
147 | # This guards against the alternative of showing the diffs vs. the |
148 | # reflog ancestor. The reflog used is designed to list the commits | |
149 | # more than once, so as to exercise the corresponding logic. | |
150 | test_expect_success 'git log -g -p shows diffs vs. parents' ' | |
151 | test_commit two && | |
152 | git branch flipflop && | |
153 | git update-ref refs/heads/flipflop -m flip1 HEAD^ && | |
154 | git update-ref refs/heads/flipflop -m flop1 HEAD && | |
155 | git update-ref refs/heads/flipflop -m flip2 HEAD^ && | |
156 | git log -g -p flipflop >reflog && | |
157 | grep -v ^Reflog reflog >actual && | |
158 | git log -1 -p HEAD^ >log.one && | |
159 | git log -1 -p HEAD >log.two && | |
160 | ( | |
f2deabfc ES |
161 | cat log.one && echo && |
162 | cat log.two && echo && | |
163 | cat log.one && echo && | |
838f9a15 TR |
164 | cat log.two |
165 | ) >expect && | |
166 | test_cmp expect actual | |
167 | ' | |
168 | ||
afcb2e7a DT |
169 | test_expect_success 'reflog exists works' ' |
170 | git reflog exists refs/heads/master && | |
171 | ! git reflog exists refs/heads/nonexistent | |
172 | ' | |
173 | ||
cd437120 | 174 | test_done |