Re: [PATCH 2/2] filter-branch: use git-sh-setup's ident parsing functions
- From
Johannes Sixt <j.sixt@viscovery.net>
- Date
- Oct 18, 2012, 07:49 UTC
- Message-ID
- <507FB470.2060404@viscovery.net>
- In-Reply-To
- <20121018072535.GB9999@sigill.intra.peff.net>
Am 10/18/2012 9:25, schrieb Jeff King:
Show 39 quoted lines
> -# When piped a commit, output a script to set the ident of either
> -# "author" or "committer
> +# Ensure non-empty id name.
> +fallback_name() {
> + echo "case \"\$GIT_$1_NAME\" in \"\") GIT_$1_NAME=\"\${GIT_$1_EMAIL%%@*}\" && export GIT_$1_NAME;; esac"
> +}
>
> set_ident () {
> - lid="$(echo "$1" | tr "[A-Z]" "[a-z]")"
> - uid="$(echo "$1" | tr "[a-z]" "[A-Z]")"
> - pick_id_script='
> - /^'$lid' /{
> - s/'\''/'\''\\'\'\''/g
> - h
> - s/^'$lid' \([^<]*\) <[^>]*> .*$/\1/
> - s/'\''/'\''\'\'\''/g
> - s/.*/GIT_'$uid'_NAME='\''&'\''; export GIT_'$uid'_NAME/p
> -
> - g
> - s/^'$lid' [^<]* <\([^>]*\)> .*$/\1/
> - s/'\''/'\''\'\'\''/g
> - s/.*/GIT_'$uid'_EMAIL='\''&'\''; export GIT_'$uid'_EMAIL/p
> -
> - g
> - s/^'$lid' [^<]* <[^>]*> \(.*\)$/@\1/
> - s/'\''/'\''\'\'\''/g
> - s/.*/GIT_'$uid'_DATE='\''&'\''; export GIT_'$uid'_DATE/p
> -
> - q
> - }
> - '
> -
> - LANG=C LC_ALL=C sed -ne "$pick_id_script"
> - # Ensure non-empty id name.
> - echo "case \"\$GIT_${uid}_NAME\" in \"\") GIT_${uid}_NAME=\"\${GIT_${uid}_EMAIL%%@*}\" && export GIT_${uid}_NAME;; esac"
> + parse_ident_from_commit author AUTHOR committer COMMITTER
> + fallback_name AUTHOR
> + fallback_name COMMITTER
> }Didn't you lose the export GIT_$uid_{NAME,EMAIL,DATE} parts somewhere on the way?
Thanks for working on this!
-- Hannes