]>
Commit | Line | Data |
---|---|---|
3714e7c8 JS |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (c) 2006 Johannes E. Schindelin | |
4 | # | |
5 | ||
5be60078 | 6 | test_description='git shortlog |
3714e7c8 JS |
7 | ' |
8 | ||
9 | . ./test-lib.sh | |
10 | ||
ae00dc19 JN |
11 | test_expect_success 'setup' ' |
12 | echo 1 >a1 && | |
13 | git add a1 && | |
14 | tree=$(git write-tree) && | |
15 | commit=$(printf "%s\n" "Test" "" | git commit-tree "$tree") && | |
16 | git update-ref HEAD "$commit" && | |
17 | ||
18 | echo 2 >a1 && | |
19 | git commit --quiet -m "This is a very, very long first line for the commit message to see if it is wrapped correctly" a1 && | |
20 | ||
21 | # test if the wrapping is still valid | |
22 | # when replacing all is by treble clefs. | |
23 | echo 3 >a1 && | |
24 | git commit --quiet -m "$( | |
25 | echo "This is a very, very long first line for the commit message to see if it is wrapped correctly" | | |
26 | sed "s/i/1234/g" | | |
27 | tr 1234 "\360\235\204\236")" a1 && | |
28 | ||
29 | # now fsck up the utf8 | |
30 | git config i18n.commitencoding non-utf-8 && | |
31 | echo 4 >a1 && | |
32 | git commit --quiet -m "$( | |
33 | echo "This is a very, very long first line for the commit message to see if it is wrapped correctly" | | |
34 | sed "s/i/1234/g" | | |
35 | tr 1234 "\370\235\204\236")" a1 && | |
36 | ||
37 | echo 5 >a1 && | |
a48fcd83 | 38 | git commit --quiet -m "a 12 34 56 78" a1 && |
ed715b5e JN |
39 | |
40 | echo 6 >a1 && | |
41 | git commit --quiet -m "Commit by someone else" \ | |
60037249 JN |
42 | --author="Someone else <not!me>" a1 && |
43 | ||
44 | cat >expect.template <<-\EOF | |
45 | A U Thor (5): | |
46 | SUBJECT | |
47 | SUBJECT | |
48 | SUBJECT | |
49 | SUBJECT | |
50 | SUBJECT | |
51 | ||
52 | Someone else (1): | |
53 | SUBJECT | |
54 | ||
55 | EOF | |
56 | ' | |
57 | ||
58 | fuzz() { | |
59 | file=$1 && | |
60 | sed " | |
61 | s/$_x40/OBJECT_NAME/g | |
62 | s/$_x05/OBJID/g | |
63 | s/^ \{6\}[CTa].*/ SUBJECT/g | |
64 | s/^ \{8\}[^ ].*/ CONTINUATION/g | |
65 | " <"$file" >"$file.fuzzy" && | |
66 | sed "/CONTINUATION/ d" <"$file.fuzzy" | |
67 | } | |
68 | ||
69 | test_expect_success 'default output format' ' | |
70 | git shortlog HEAD >log && | |
71 | fuzz log >log.predictable && | |
72 | test_cmp expect.template log.predictable | |
73 | ' | |
74 | ||
75 | test_expect_success 'pretty format' ' | |
76 | sed s/SUBJECT/OBJECT_NAME/ expect.template >expect && | |
77 | git shortlog --format="%H" HEAD >log && | |
78 | fuzz log >log.predictable && | |
79 | test_cmp expect log.predictable | |
80 | ' | |
81 | ||
c1977021 | 82 | test_expect_success '--abbrev' ' |
60037249 JN |
83 | sed s/SUBJECT/OBJID/ expect.template >expect && |
84 | git shortlog --format="%h" --abbrev=5 HEAD >log && | |
85 | fuzz log >log.predictable && | |
86 | test_cmp expect log.predictable | |
87 | ' | |
88 | ||
89 | test_expect_success 'output from user-defined format is re-wrapped' ' | |
90 | sed "s/SUBJECT/two lines/" expect.template >expect && | |
91 | git shortlog --format="two%nlines" HEAD >log && | |
92 | fuzz log >log.predictable && | |
93 | test_cmp expect log.predictable | |
ae00dc19 | 94 | ' |
3714e7c8 | 95 | |
f57a8715 | 96 | test_expect_success !MINGW 'shortlog wrapping' ' |
ae00dc19 | 97 | cat >expect <<\EOF && |
3714e7c8 JS |
98 | A U Thor (5): |
99 | Test | |
100 | This is a very, very long first line for the commit message to see if | |
101 | it is wrapped correctly | |
102 | Th๐s ๐s a very, very long f๐rst l๐ne for the comm๐t message to see ๐f | |
103 | ๐t ๐s wrapped correctly | |
104 |