summaryrefslogtreecommitdiff
path: root/contrib/hooks
diff options
context:
space:
mode:
authorJonathan Nieder <jrnieder@gmail.com>2013-08-02 23:23:38 (GMT)
committerJunio C Hamano <gitster@pobox.com>2013-08-05 17:17:36 (GMT)
commit3109bdb0d157afbd01c412d6f3fb1c86d8b7adde (patch)
treef77c241579bb4783c37529bf388d3f95306d349f /contrib/hooks
parent1e88f7a277c4cf96a425ffa66e30177b858bc965 (diff)
downloadgit-3109bdb0d157afbd01c412d6f3fb1c86d8b7adde.zip
git-3109bdb0d157afbd01c412d6f3fb1c86d8b7adde.tar.gz
git-3109bdb0d157afbd01c412d6f3fb1c86d8b7adde.tar.bz2
hooks/post-receive-email: force log messages in UTF-8
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 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. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/hooks')
-rwxr-xr-xcontrib/hooks/post-receive-email8
1 files changed, 4 insertions, 4 deletions
diff --git a/contrib/hooks/post-receive-email b/contrib/hooks/post-receive-email
index 7208451..ba93a0d 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
}