1#!/bin/sh 2# 3# Copyright (c) 2006 Johannes E. Schindelin 4# 5 6test_description='git shortlog 7' 8 9. ./test-lib.sh 10 11test_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 && 38 git commit --quiet -m "a 12 34 56 78" a1 39' 40 41test_expect_success 'shortlog wrapping'' 42 cat >expect <<\EOF && 43A U Thor (5): 44 Test 45 This is a very, very long first line for the commit message to see if 46 it is wrapped correctly 47 Th𝄞s 𝄞s a very, very long f𝄞rst l𝄞ne for the comm𝄞t message to see 𝄞f 48 𝄞t 𝄞s wrapped correctly 49 Thø\9d\84\9es ø\9d\84\9es a very, very long fø\9d\84\9erst lø\9d\84\9ene for the commø\9d\84\9et 50 message to see ø\9d\84\9ef ø\9d\84\9et ø\9d\84\9es wrapped correctly 51 a 12 34 52 56 78 53 54EOF 55 git shortlog -w HEAD >out && 56 test_cmp expect out 57' 58 59test_expect_success 'shortlog from non-git directory'' 60 git log HEAD >log && 61 GIT_DIR=non-existing git shortlog -w <log >out && 62 test_cmp expect out 63' 64 65iconvfromutf8toiso88591() { 66printf"%s""$*"|iconv-f UTF-8 -t ISO8859-1 67} 68 69DSCHO="Jöhännës\"Dschö\"Schindëlin" 70DSCHOE="$DSCHO<Johannes.Schindelin@gmx.de>" 71MSG1="set a1 to 2 and some non-ASCII chars: Äßø" 72MSG2="set a1 to 3 and some non-ASCII chars: áæï" 73cat> expect << EOF 74$DSCHO(2): 75$MSG1 76$MSG2 77 78EOF 79 80test_expect_success 'shortlog encoding'' 81 git reset --hard "$commit" && 82 git config --unset i18n.commitencoding && 83 echo 2 > a1 && 84 git commit --quiet -m "$MSG1" --author="$DSCHOE" a1 && 85 git config i18n.commitencoding "ISO8859-1" && 86 echo 3 > a1 && 87 git commit --quiet -m "$(iconvfromutf8toiso88591 "$MSG2")" \ 88 --author="$(iconvfromutf8toiso88591 "$DSCHOE")" a1 && 89 git config --unset i18n.commitencoding && 90 git shortlog HEAD~2.. > out && 91test_cmp expect out' 92 93test_done