From: Junio C Hamano Date: Thu, 24 Jan 2013 20:44:15 GMT Subject: Re: [PATCH v4 3/4] pretty: Add failing tests: user format ignores i18n.logOutputEncoding setting Message-ID: <7vr4la9uqo.fsf@alter.siamese.dyndns.org> In-Reply-To: <6de583a2d281b1614c69d5e7b6f5c4495488f6a3.1359018188.git.Alex.Crezoff@gmail.com> Alexey Shumkin writes: > The following two commands are expected to give the same output to a terminal: > > $ git log --oneline --no-color > $ git log --pretty=format:'%h %s' > > However, the former pays attention to i18n.logOutputEncoding > configuration, while the latter does not when it format "%s". > Log messages written in an encoding i18n.commitEncoding which differs > from terminal encoding are shown corrupted with the latter even > when i18n.logOutputEncoding and terminal encoding are the same. > > The same corruption is true for > $ git diff --submodule=log > and > $ git rev-list --pretty=format:%s HEAD > and > $ git reset --hard > > Signed-off-by: Alexey Shumkin > --- > t/t4041-diff-submodule-option.sh | 33 ++++++++------- > t/t4205-log-pretty-formats.sh | 43 +++++++++++++++---- > t/t6006-rev-list-format.sh | 90 ++++++++++++++++++++++++++-------------- > t/t7102-reset.sh | 32 +++++++++++--- > 4 files changed, 138 insertions(+), 60 deletions(-) > > diff --git a/t/t4041-diff-submodule-option.sh b/t/t4041-diff-submodule-option.sh > index 32d4a60..e7d6363 100755 > --- a/t/t4041-diff-submodule-option.sh > +++ b/t/t4041-diff-submodule-option.sh > @@ -1,6 +1,7 @@ > #!/bin/sh > # > # Copyright (c) 2009 Jens Lehmann, based on t7401 by Ping Yin > +# Copyright (c) 2011 Alexey Shumkin (+ non-UTF-8 commit encoding tests) > # > > test_description='Support for verbose submodule differences in git diff > @@ -10,6 +11,7 @@ This test tries to verify the sanity of the --submodule option of git diff. > > . ./test-lib.sh > > +added=$(printf "\320\264\320\276\320\261\320\260\320\262\320\273\320\265\320\275") Please have an in-code comment before this line to explain what this variable is about, e.g. # String "added" in Russian, encoded in UTF-8, used in # sample commit log messages in add_file() function below. added=$(printf "...") > add_file () { > ( > cd "$1" && > @@ -19,7 +21,8 @@ add_file () { > echo "$name" >"$name" && > git add "$name" && > test_tick && > - git commit -m "Add $name" || exit > + msg_added_cp1251=$(echo "Add $name ($added $name)" | iconv -f utf-8 -t cp1251) && > + git -c 'i18n.commitEncoding=cp1251' commit -m "$msg_added_cp1251" > done >/dev/null && > git rev-parse --short --verify HEAD > ) Does this patch make the all tests in this script fail for people without cp1251 locale installed? We already have tests that depend on 8859-1 and some other locales, and we'd be better off limiting such dependency to the minimum. Same comment applies to the changes to other test scripts. Thanks.