Staging
v0.5.2
Revision 6c293d408dbbd0206e80df3ecda7f1620cadaa94 authored by Santi Béjar on 08 March 2008, 11:30:04 UTC, committed by Junio C Hamano on 09 March 2008, 03:43:21 UTC
The "config --global" suggested in the message is a valid one-shot fix,
and hopefully one-shot across machines that NFS mounts the home directories.

This knowledge can hopefully be reused when you are forced to use git on
Windows, but the fix based on GECOS would not be applicable, so
it is not such a useful hint to mention the exact reason why the
name cannot be determined.

Signed-off-by: Santi Béjar <sbejar@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 0bb91d9
Raw File
t3900-i18n-commit.sh
#!/bin/sh
#
# Copyright (c) 2006 Junio C Hamano
#

test_description='commit and log output encodings'

. ./test-lib.sh

compare_with () {
	git show -s $1 | sed -e '1,/^$/d' -e 's/^    //' >current &&
	git diff current "$2"
}

test_expect_success setup '
	: >F &&
	git add F &&
	T=$(git write-tree) &&
	C=$(git commit-tree $T <../t3900/1-UTF-8.txt) &&
	git update-ref HEAD $C &&
	git-tag C0
'

test_expect_success 'no encoding header for base case' '
	E=$(git cat-file commit C0 | sed -ne "s/^encoding //p") &&
	test z = "z$E"
'

for H in ISO-8859-1 EUCJP ISO-2022-JP
do
	test_expect_success "$H setup" '
		git config i18n.commitencoding $H &&
		git-checkout -b $H C0 &&
		echo $H >F &&
		git-commit -a -F ../t3900/$H.txt
	'
done

for H in ISO-8859-1 EUCJP ISO-2022-JP
do
	test_expect_success "check encoding header for $H" '
		E=$(git cat-file commit '$H' | sed -ne "s/^encoding //p") &&
		test "z$E" = "z'$H'"
	'
done

test_expect_success 'config to remove customization' '
	git config --unset-all i18n.commitencoding &&
	if Z=$(git config --get-all i18n.commitencoding)
	then
		echo Oops, should have failed.
		false
	else
		test z = "z$Z"
	fi &&
	git config i18n.commitencoding utf-8
'

test_expect_success 'ISO-8859-1 should be shown in UTF-8 now' '
	compare_with ISO-8859-1 ../t3900/1-UTF-8.txt
'

for H in EUCJP ISO-2022-JP
do
	test_expect_success "$H should be shown in UTF-8 now" '
		compare_with '$H' ../t3900/2-UTF-8.txt
	'
done

test_expect_success 'config to add customization' '
	git config --unset-all i18n.commitencoding &&
	if Z=$(git config --get-all i18n.commitencoding)
	then
		echo Oops, should have failed.
		false
	else
		test z = "z$Z"
	fi
'

for H in ISO-8859-1 EUCJP ISO-2022-JP
do
	test_expect_success "$H should be shown in itself now" '
		git config i18n.commitencoding '$H' &&
		compare_with '$H' ../t3900/'$H'.txt
	'
done

test_expect_success 'config to tweak customization' '
	git config i18n.logoutputencoding utf-8
'

test_expect_success 'ISO-8859-1 should be shown in UTF-8 now' '
	compare_with ISO-8859-1 ../t3900/1-UTF-8.txt
'

for H in EUCJP ISO-2022-JP
do
	test_expect_success "$H should be shown in UTF-8 now" '
		compare_with '$H' ../t3900/2-UTF-8.txt
	'
done

for J in EUCJP ISO-2022-JP
do
	git config i18n.logoutputencoding $J
	for H in EUCJP ISO-2022-JP
	do
		test_expect_success "$H should be shown in $J now" '
			compare_with '$H' ../t3900/'$J'.txt
		'
	done
done

for H in ISO-8859-1 EUCJP ISO-2022-JP
do
	test_expect_success "No conversion with $H" '
		compare_with "--encoding=none '$H'" ../t3900/'$H'.txt
	'
done

test_done
back to top