On Fri, Aug 02, 2013 at 04:23:38PM -0700, Jonathan Nieder wrote: > Git commands write commit messages in UTF-8 by default, but that > default can be overridden by the [i18n] commitEncoding and > logOutputEncoding settings. With such a setting, the emails written > by the post-receive-email hook use a mixture of encodings: > > 1. Log messages use the configured log output encoding, which is > meant to be whatever encoding works best with local terminals > (and does not have much to do with what encoding should be used > for email) > > 2. Filenames are left as is: on Linux, usually UTF-8, and in the Mingw > port (which uses Unicode filesystem APIs), always UTF-8 I cannot say exactly if it makes sense for THIS patch, but I'd like to remind about Cygwin port, which definitely does not use UTF-8 encoding (in my case it is Windows-1251) for filenames. > > 3. The "This is an automated email" preface uses a project description > from .git/description, which is typically in UTF-8 to support > gitweb. > > So (1) is configurable, and (2) and (3) are unconfigurable and > typically UTF-8. Override the log output encoding to always use UTF-8 > when writing the email to get the best chance of a comprehensible > single-encoding email. I cannot agree to receive e-mails in UTF-8 only for Windows projects which have non-UTF-8 encoding. I want to see and read correctly formed e-mail without any corrupted symbols instead of filenames (that is the main problem here as far as filenames are not converted unlike log messages) > > Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx> > --- > contrib/hooks/post-receive-email | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/contrib/hooks/post-receive-email b/contrib/hooks/post-receive-email > index 72084511..ba93a0d8 100755 > --- a/contrib/hooks/post-receive-email > +++ b/contrib/hooks/post-receive-email > @@ -471,7 +471,7 @@ generate_delete_branch_email() > echo " was $oldrev" > echo "" > echo $LOGBEGIN > - git diff-tree -s --always --pretty=oneline $oldrev > + git diff-tree -s --always --encoding=UTF-8 --pretty=oneline $oldrev > echo $LOGEND > } > > @@ -571,7 +571,7 @@ generate_delete_atag_email() > echo " was $oldrev" > echo "" > echo $LOGBEGIN > - git diff-tree -s --always --pretty=oneline $oldrev > + git diff-tree -s --always --encoding=UTF-8 --pretty=oneline $oldrev > echo $LOGEND > } > > @@ -617,7 +617,7 @@ generate_general_email() > echo "" > if [ "$newrev_type" = "commit" ]; then > echo $LOGBEGIN > - git diff-tree -s --always --pretty=medium $newrev > + git diff-tree -s --always --encoding=UTF-8 --pretty=medium $newrev > echo $LOGEND > else > # What can we do here? The tag marks an object that is not > @@ -636,7 +636,7 @@ generate_delete_general_email() > echo " was $oldrev" > echo "" > echo $LOGBEGIN > - git diff-tree -s --always --pretty=oneline $oldrev > + git diff-tree -s --always --encoding=UTF-8 --pretty=oneline $oldrev > echo $LOGEND > } > > -- > 1.8.4.rc1 > -- Alexey Shumkin -- 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