1#!/bin/sh
2
3test_description='git blame encoding conversion'
4. ./test-lib.sh
5
6. "$TEST_DIRECTORY"/t8005/utf8.txt
7. "$TEST_DIRECTORY"/t8005/euc-japan.txt
8. "$TEST_DIRECTORY"/t8005/sjis.txt
9
10test_expect_success 'setup the repository' '
11 # Create the file
12 echo "UTF-8 LINE" > file &&
13 git add file &&
14 git commit --author "$UTF8_NAME <utf8@localhost>" -m "$UTF8_MSG" &&
15
16 echo "EUC-JAPAN LINE" >> file &&
17 git add file &&
18 git config i18n.commitencoding eucJP &&
19 git commit --author "$EUC_JAPAN_NAME <euc-japan@localhost>" -m "$EUC_JAPAN_MSG" &&
20
21 echo "SJIS LINE" >> file &&
22 git add file &&
23 git config i18n.commitencoding SJIS &&
24 git commit --author "$SJIS_NAME <sjis@localhost>" -m "$SJIS_MSG"
25'
26
27cat >expected <<EOF
28author $SJIS_NAME
29summary $SJIS_MSG
30author $SJIS_NAME
31summary $SJIS_MSG
32author $SJIS_NAME
33summary $SJIS_MSG
34EOF
35
36test_expect_success \
37 'blame respects i18n.commitencoding' '
38 git blame --incremental file | \
39 egrep "^(author|summary) " > actual &&
40 test_cmp actual expected
41'
42
43cat >expected <<EOF
44author $EUC_JAPAN_NAME
45summary $EUC_JAPAN_MSG
46author $EUC_JAPAN_NAME
47summary $EUC_JAPAN_MSG
48author $EUC_JAPAN_NAME
49summary $EUC_JAPAN_MSG
50EOF
51
52test_expect_success \
53 'blame respects i18n.logoutputencoding' '
54 git config i18n.logoutputencoding eucJP &&
55 git blame --incremental file | \
56 egrep "^(author|summary) " > actual &&
57 test_cmp actual expected
58'
59
60cat >expected <<EOF
61author $UTF8_NAME
62summary $UTF8_MSG
63author $UTF8_NAME
64summary $UTF8_MSG
65author $UTF8_NAME
66summary $UTF8_MSG
67EOF
68
69test_expect_success \
70 'blame respects --encoding=UTF-8' '
71 git blame --incremental --encoding=UTF-8 file | \
72 egrep "^(author|summary) " > actual &&
73 test_cmp actual expected
74'
75
76cat >expected <<EOF
77author $SJIS_NAME
78summary $SJIS_MSG
79author $EUC_JAPAN_NAME
80summary $EUC_JAPAN_MSG
81author $UTF8_NAME
82summary $UTF8_MSG
83EOF
84
85test_expect_success \
86 'blame respects --encoding=none' '
87 git blame --incremental --encoding=none file | \
88 egrep "^(author|summary) " > actual &&
89 test_cmp actual expected
90'
91
92test_done