Alexey Shumkin <alex.crezoff@xxxxxxxxx> 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 <Alex.Crezoff@xxxxxxxxx> > --- > 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. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html