Re: [PATCH 2/3] hooks/post-receive-email: force log messages in UTF-8
- From
Alexey Shumkin <alex.crezoff@gmail.com>
- Date
- Aug 4, 2013, 14:54 UTC
- Message-ID
- <20130804145448.GA15097@dell-note>
- In-Reply-To
- <20130802232338.GD2963@elie.Belkin>
On Fri, Aug 02, 2013 at 04:23:38PM -0700, Jonathan Nieder wrote:
Show 12 quoted lines
> 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.
Show 9 quoted lines
> > 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)
Show 49 quoted lines
> > Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> > --- > 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