Move the pick_author code to git-sh-setup
At the moment, only git-commit uses that code, to pick the author name, email and date from a given commit. This code will be reused in git rebase --interactive. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
aeb5932845
commit
0cae23467a
@ -483,34 +483,8 @@ fi >>"$GIT_DIR"/COMMIT_EDITMSG
|
|||||||
# Author
|
# Author
|
||||||
if test '' != "$use_commit"
|
if test '' != "$use_commit"
|
||||||
then
|
then
|
||||||
pick_author_script='
|
eval "$(get_author_ident_from_commit "$use_commit")"
|
||||||
/^author /{
|
export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE
|
||||||
s/'\''/'\''\\'\'\''/g
|
|
||||||
h
|
|
||||||
s/^author \([^<]*\) <[^>]*> .*$/\1/
|
|
||||||
s/'\''/'\''\'\'\''/g
|
|
||||||
s/.*/GIT_AUTHOR_NAME='\''&'\''/p
|
|
||||||
|
|
||||||
g
|
|
||||||
s/^author [^<]* <\([^>]*\)> .*$/\1/
|
|
||||||
s/'\''/'\''\'\'\''/g
|
|
||||||
s/.*/GIT_AUTHOR_EMAIL='\''&'\''/p
|
|
||||||
|
|
||||||
g
|
|
||||||
s/^author [^<]* <[^>]*> \(.*\)$/\1/
|
|
||||||
s/'\''/'\''\'\'\''/g
|
|
||||||
s/.*/GIT_AUTHOR_DATE='\''&'\''/p
|
|
||||||
|
|
||||||
q
|
|
||||||
}
|
|
||||||
'
|
|
||||||
encoding=$(git 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
|
|
||||||
export GIT_AUTHOR_EMAIL
|
|
||||||
export GIT_AUTHOR_DATE
|
|
||||||
fi
|
fi
|
||||||
if test '' != "$force_author"
|
if test '' != "$force_author"
|
||||||
then
|
then
|
||||||
|
@ -53,6 +53,33 @@ require_work_tree () {
|
|||||||
die "fatal: $0 cannot be used without a working tree."
|
die "fatal: $0 cannot be used without a working tree."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_author_ident_from_commit () {
|
||||||
|
pick_author_script='
|
||||||
|
/^author /{
|
||||||
|
s/'\''/'\''\\'\'\''/g
|
||||||
|
h
|
||||||
|
s/^author \([^<]*\) <[^>]*> .*$/\1/
|
||||||
|
s/'\''/'\''\'\'\''/g
|
||||||
|
s/.*/GIT_AUTHOR_NAME='\''&'\''/p
|
||||||
|
|
||||||
|
g
|
||||||
|
s/^author [^<]* <\([^>]*\)> .*$/\1/
|
||||||
|
s/'\''/'\''\'\'\''/g
|
||||||
|
s/.*/GIT_AUTHOR_EMAIL='\''&'\''/p
|
||||||
|
|
||||||
|
g
|
||||||
|
s/^author [^<]* <[^>]*> \(.*\)$/\1/
|
||||||
|
s/'\''/'\''\'\'\''/g
|
||||||
|
s/.*/GIT_AUTHOR_DATE='\''&'\''/p
|
||||||
|
|
||||||
|
q
|
||||||
|
}
|
||||||
|
'
|
||||||
|
encoding=$(git config i18n.commitencoding || echo UTF-8)
|
||||||
|
git show -s --pretty=raw --encoding="$encoding" "$1" |
|
||||||
|
LANG=C LC_ALL=C sed -ne "$pick_author_script"
|
||||||
|
}
|
||||||
|
|
||||||
if [ -z "$LONG_USAGE" ]
|
if [ -z "$LONG_USAGE" ]
|
||||||
then
|
then
|
||||||
LONG_USAGE="Usage: $0 $USAGE"
|
LONG_USAGE="Usage: $0 $USAGE"
|
||||||
|
Loading…
Reference in New Issue
Block a user