builtin-blame: Reencode commit messages according to git-log rules.
authorAlexander Gavrilov <angavrilov@gmail.com>
Tue, 21 Oct 2008 20:55:57 +0000 (00:55 +0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 21 Oct 2008 21:09:34 +0000 (14:09 -0700)
commit69cd8f63427c65c65d9cd66bb8c05ca93dc3edef
tree6520e907a99f50404bf9ba8e151ceb6f06e72e5e
parent208f689610e524ce9858f9d28635f7fea51b8d96
builtin-blame: Reencode commit messages according to git-log rules.

Currently git-blame outputs text from the commit messages
(e.g. the author name and the summary string) as-is, without
even providing any information about the encoding used for
the data. It makes interpreting the data in multilingual
environment very difficult.

This commit changes the blame implementation to recode the
messages using the rules used by other commands like git-log.
Namely, the target encoding can be specified through the
i18n.commitEncoding or i18n.logOutputEncoding options, or
directly on the command line using the --encoding parameter.

Converting the encoding before output seems to be more
friendly to the porcelain tools than simply providing the
value of the encoding header, and does not require changing
the output format.

If anybody needs the old behavior, it is possible to
achieve it by specifying --encoding=none.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/blame-options.txt
Documentation/i18n.txt
builtin-blame.c
commit.h
pretty.c
t/t8005-blame-i18n.sh [new file with mode: 0755]
t/t8005/cp1251.txt [new file with mode: 0644]
t/t8005/sjis.txt [new file with mode: 0644]
t/t8005/utf8.txt [new file with mode: 0644]