2006-12-22 22:15:59 +01:00
#!/bin/sh
#
# Copyright (c) 2006 Johannes E. Schindelin
#
2007-07-03 07:52:14 +02:00
test_description = ' git shortlog
2006-12-22 22:15:59 +01:00
'
. ./test-lib.sh
echo 1 > a1
git add a1
tree = $( git write-tree)
2007-04-13 22:13:10 +02:00
commit = $( ( echo "Test" ; echo ) | git commit-tree $tree )
2006-12-22 22:15:59 +01:00
git update-ref HEAD $commit
echo 2 > a1
2007-04-23 20:46:21 +02:00
git commit --quiet -m "This is a very, very long first line for the commit message to see if it is wrapped correctly" a1
2006-12-22 22:15:59 +01:00
# test if the wrapping is still valid when replacing all i's by treble clefs.
echo 3 > a1
2007-04-23 20:46:21 +02:00
git commit --quiet -m " $( echo "This is a very, very long first line for the commit message to see if it is wrapped correctly" | sed "s/i/1234/g" | tr 1234 '\360\235\204\236' ) " a1
2006-12-22 22:15:59 +01:00
# now fsck up the utf8
2008-01-18 07:52:40 +01:00
git config i18n.commitencoding non-utf-8
2006-12-22 22:15:59 +01:00
echo 4 > a1
2007-04-23 20:46:21 +02:00
git commit --quiet -m " $( echo "This is a very, very long first line for the commit message to see if it is wrapped correctly" | sed "s/i/1234/g" | tr 1234 '\370\235\204\236' ) " a1
2006-12-22 22:15:59 +01:00
echo 5 > a1
2007-04-23 20:46:21 +02:00
git commit --quiet -m "a 12 34 56 78" a1
2006-12-22 22:15:59 +01:00
2007-04-08 10:28:00 +02:00
git shortlog -w HEAD > out
2006-12-22 22:15:59 +01:00
cat > expect << EOF
A U Thor ( 5) :
Test
This is a very, very long first line for the commit message to see if
it is wrapped correctly
Th𝄞s 𝄞s a very, very long f𝄞rst l𝄞ne for the comm𝄞t message to see 𝄞f
𝄞t 𝄞s wrapped correctly
Th<54> <68> <EFBFBD> <EFBFBD> s <20> <> <EFBFBD> <EFBFBD> s a very, very long f<> <66> <EFBFBD> <EFBFBD> rst l<> <6C> <EFBFBD> <EFBFBD> ne for the comm<6D> <6D> <EFBFBD> <EFBFBD> t
message to see <20> <> <EFBFBD> <EFBFBD> f <20> <> <EFBFBD> <EFBFBD> t <20> <> <EFBFBD> <EFBFBD> s wrapped correctly
a 12 34
56 78
EOF
2008-03-12 22:36:36 +01:00
test_expect_success 'shortlog wrapping' 'test_cmp expect out'
2006-12-22 22:15:59 +01:00
2008-03-14 22:35:24 +01:00
git log HEAD > log
GIT_DIR = non-existing git shortlog -w < log > out
2008-03-15 09:23:26 +01:00
test_expect_success 'shortlog from non-git directory' 'test_cmp expect out'
2008-03-14 22:35:24 +01:00
2009-11-25 20:33:28 +01:00
iconvfromutf8toiso88591( ) {
2009-12-03 18:52:45 +01:00
printf "%s" " $* " | iconv -f UTF-8 -t ISO8859-1
2009-11-25 20:33:28 +01:00
}
DSCHO = "Jöhännës \"Dschö\" Schindëlin"
DSCHOE = " $DSCHO <Johannes.Schindelin@gmx.de> "
MSG1 = "set a1 to 2 and some non-ASCII chars: Äßø"
MSG2 = "set a1 to 3 and some non-ASCII chars: áæï"
cat > expect << EOF
$DSCHO ( 2) :
$MSG1
$MSG2
EOF
test_expect_success 'shortlog encoding' '
git reset --hard " $commit " &&
git config --unset i18n.commitencoding &&
echo 2 > a1 &&
git commit --quiet -m " $MSG1 " --author= " $DSCHOE " a1 &&
2009-12-03 18:52:45 +01:00
git config i18n.commitencoding "ISO8859-1" &&
2009-11-25 20:33:28 +01:00
echo 3 > a1 &&
git commit --quiet -m " $( iconvfromutf8toiso88591 " $MSG2 " ) " \
--author= " $( iconvfromutf8toiso88591 " $DSCHOE " ) " a1 &&
git config --unset i18n.commitencoding &&
git shortlog HEAD~2.. > out &&
test_cmp expect out'
2006-12-22 22:15:59 +01:00
test_done