From: Junio C Hamano Date: Sun, 14 Jan 2007 20:04:25 +0000 (-0800) Subject: Merge branch 'jc/int' X-Git-Tag: v1.5.0-rc2~102 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/f4b6c6b90fdce12d69e4ad80ff6082405ec8cfb8?hp=-c Merge branch 'jc/int' * jc/int: More tests in t3901. Consistent message encoding while reusing log from an existing commit. t3901: test "format-patch | am" pipe with i18n Use log output encoding in --pretty=email headers. --- f4b6c6b90fdce12d69e4ad80ff6082405ec8cfb8 diff --combined git-commit.sh index 9fdf234b52,b6387239dd..e23918cd6c --- a/git-commit.sh +++ b/git-commit.sh @@@ -316,16 -316,22 +316,16 @@@ esa ################################################################ # Prepare index to have a tree to be committed -TOP=`git-rev-parse --show-cdup` -if test -z "$TOP" -then - TOP=./ -fi - case "$all,$also" in t,) save_index && ( - cd "$TOP" - GIT_INDEX_FILE="$NEXT_INDEX" - export GIT_INDEX_FILE + cd_to_toplevel && + GIT_INDEX_FILE="$NEXT_INDEX" && + export GIT_INDEX_FILE && git-diff-files --name-only -z | git-update-index --remove -z --stdin - ) + ) || exit ;; ,t) save_index && @@@ -333,11 -339,11 +333,11 @@@ git-diff-files --name-only -z -- "$@" | ( - cd "$TOP" - GIT_INDEX_FILE="$NEXT_INDEX" - export GIT_INDEX_FILE + cd_to_toplevel && + GIT_INDEX_FILE="$NEXT_INDEX" && + export GIT_INDEX_FILE && git-update-index --remove -z --stdin - ) + ) || exit ;; ,) case "$#" in @@@ -429,7 -435,9 +429,9 @@@ the 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" @@@ -491,7 -499,8 +493,8 @@@ the 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 diff --combined git-revert.sh index 224e6540ca,fcbefb4e68..71cbcbc2b8 --- a/git-revert.sh +++ b/git-revert.sh @@@ -19,11 -19,8 +19,11 @@@ case "$0" i echo >&2 "What are you talking about?" exit 1 ;; esac + +SUBDIRECTORY_OK=Yes ;# we will cd up . git-sh-setup require_work_tree +cd_to_toplevel no_commit= while case "$#" in 0) break ;; esac @@@ -81,6 -78,8 +81,8 @@@ prev=$(git-rev-parse --verify "$commit^ git-rev-parse --verify "$commit^2" >/dev/null 2>&1 && die "Cannot run $me a multi-parent commit." + encoding=$(git repo-config i18n.commitencoding || echo UTF-8) + # "commit" is an existing commit. We would want to apply # the difference it introduces since its first parent "prev" # on top of the current HEAD if we are cherry-pick. Or the @@@ -88,10 -87,11 +90,11 @@@ case "$me" in revert) - git-rev-list --pretty=oneline --max-count=1 $commit | + git show -s --pretty=oneline --encoding="$encoding" $commit | sed -e ' s/^[^ ]* /Revert "/ - s/$/"/' + s/$/"/ + ' echo echo "This reverts commit $commit." test "$rev" = "$commit" || @@@ -120,14 -120,17 +123,17 @@@ cherry-pick q }' - set_author_env=`git-cat-file commit "$commit" | + + logmsg=`git show -s --pretty=raw --encoding="$encoding" "$commit"` + set_author_env=`echo "$logmsg" | LANG=C LC_ALL=C sed -ne "$pick_author_script"` eval "$set_author_env" export GIT_AUTHOR_NAME export GIT_AUTHOR_EMAIL export GIT_AUTHOR_DATE - git-cat-file commit $commit | sed -e '1,/^$/d' + echo "$logmsg" | + sed -e '1,/^$/d' -e 's/^ //' case "$replay" in '') echo "(cherry picked from commit $commit)"