Consistent message encoding while reusing log from an existing commit.
The following commands can reuse log message from an existing commit while creating a new commit: git-cherry-pick git-rebase (both with and without --merge) git-commit (-c and -C) When the original commit was made in a different encoding from the current i18n.commitencoding, "cat-file commit" would give a string that is inconsistent with what the resulting commit will claim to be in. Replace them with "git show -s --encoding". "git-rebase" without --merge is "git format-patch" piped to "git am" in essence, and has been taken care of before this commit. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
@ -435,7 +435,9 @@ then
|
||||
fi
|
||||
elif test "$use_commit" != ""
|
||||
then
|
||||
git-cat-file commit "$use_commit" | sed -e '1,/^$/d'
|
||||
encoding=$(git repo-config i18n.commitencoding || echo UTF-8)
|
||||
git show -s --pretty=raw --encoding="$encoding" "$use_commit" |
|
||||
sed -e '1,/^$/d' -e 's/^ //'
|
||||
elif test -f "$GIT_DIR/MERGE_MSG"
|
||||
then
|
||||
cat "$GIT_DIR/MERGE_MSG"
|
||||
@ -497,7 +499,8 @@ then
|
||||
q
|
||||
}
|
||||
'
|
||||
set_author_env=`git-cat-file commit "$use_commit" |
|
||||
encoding=$(git repo-config i18n.commitencoding || echo UTF-8)
|
||||
set_author_env=`git show -s --pretty=raw --encoding="$encoding" "$use_commit" |
|
||||
LANG=C LC_ALL=C sed -ne "$pick_author_script"`
|
||||
eval "$set_author_env"
|
||||
export GIT_AUTHOR_NAME
|
||||
|
Reference in New Issue
Block a user