diff options
author | Johannes Schindelin <Johannes.Schindelin@gmx.de> | 2007-06-25 01:04:11 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-06-24 17:45:01 -0700 |
commit | 0cae23467ada9b94210a0e770064841efea8ad40 (patch) | |
tree | 9d9d725204a151bf5f307bd77ee7a4672a817480 /git-sh-setup.sh | |
parent | aeb59328453cd4f438345ea79ff04c96bccbbbb8 (diff) | |
download | git-0cae23467ada9b94210a0e770064841efea8ad40.tar.gz |
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>
Diffstat (limited to 'git-sh-setup.sh')
-rwxr-xr-x | git-sh-setup.sh | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/git-sh-setup.sh b/git-sh-setup.sh index f24c7f2d23..d861db3b28 100755 --- a/git-sh-setup.sh +++ b/git-sh-setup.sh @@ -53,6 +53,33 @@ require_work_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" ] then LONG_USAGE="Usage: $0 $USAGE" |