rebase -i: avoid exporting GIT_AUTHOR_* variables
It is somewhat unsafe to export the GIT_AUTHOR_* variables, since a later call to git-commit or git-merge could pick them up inadvertently. So avoid the export, using a recipe provided by Johannes Sixt. Incidentally, this fixes authorship of merges with "rebase --preserve -i". Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
dad4e32c46
commit
ae830ed7f5
@ -174,7 +174,11 @@ pick_one_preserving_merges () {
|
||||
eval "$author_script"
|
||||
msg="$(git cat-file commit $sha1 | sed -e '1,/^$/d')"
|
||||
# NEEDSWORK: give rerere a chance
|
||||
if ! output git merge $STRATEGY -m "$msg" $new_parents
|
||||
if ! GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME" \
|
||||
GIT_AUTHOR_EMAIL="$GIT_AUTHOR_EMAIL" \
|
||||
GIT_AUTHOR_DATE="$GIT_AUTHOR_DATE" \
|
||||
output git merge $STRATEGY -m "$msg" \
|
||||
$new_parents
|
||||
then
|
||||
printf "%s\n" "$msg" > "$GIT_DIR"/MERGE_MSG
|
||||
die Error redoing merge $sha1
|
||||
@ -281,7 +285,9 @@ do_next () {
|
||||
f)
|
||||
# This is like --amend, but with a different message
|
||||
eval "$author_script"
|
||||
export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE
|
||||
GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME" \
|
||||
GIT_AUTHOR_EMAIL="$GIT_AUTHOR_EMAIL" \
|
||||
GIT_AUTHOR_DATE="$GIT_AUTHOR_DATE" \
|
||||
$USE_OUTPUT git commit -F "$MSG" $EDIT_COMMIT
|
||||
;;
|
||||
t)
|
||||
|
Loading…
Reference in New Issue
Block a user