Merge branch 'jc/int'
authorJunio C Hamano <junkio@cox.net>
Sun, 14 Jan 2007 20:04:25 +0000 (12:04 -0800)
committerJunio C Hamano <junkio@cox.net>
Sun, 14 Jan 2007 20:04:25 +0000 (12:04 -0800)
* 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.

1  2 
git-commit.sh
git-revert.sh
diff --combined git-commit.sh
index 9fdf234b522322cf4e5d539f52debe76bebf6aa8,b6387239dda2d9314b37eeabc2ff79bb4b013e01..e23918cd6c515e193d3bc5d476c360001fdc1222
@@@ -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 &&
  
        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 224e6540ca073da804332799660a8cdeacdfdaf7,fcbefb4e688317ebbd6563da898ff6010e8b660b..71cbcbc2b886b2770c61c4b3a496db913ef56d9d
@@@ -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
  
  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)"