]> git.wh0rd.org - home.git/blob - .bin/git-rewrite-authors
git-rewrite-authors: support names better
[home.git] / .bin / git-rewrite-authors
1 #!/bin/bash
2
3 tmp=$(mktemp)
4 cat << \EOF > ${tmp}
5 decode() {
6 awk -vid="$1" -vtype="$2" '$1 == id {
7 match($0, /^[^=]*=\s*([^<]*)<([^>]*)>/, a);
8 name = gensub(/\s+$/, "", "g", a[1]);
9 email = a[2];
10 print "export GIT_"type"_NAME='\''" name "'\'';"
11 print "export GIT_"type"_EMAIL='\''" email "'\'';"
12 }' ${author_file}
13 }
14 EOF
15
16 for x in cvs-authors authors ; do
17 export author_file=${PWD}/.git/$x
18 [ -e ${author_file} ] && break
19 done
20 git filter-branch \
21 --env-filter ". ${tmp};"' \
22 eval `decode "${GIT_AUTHOR_NAME}" AUTHOR`; \
23 eval `decode "${GIT_COMMITTER_NAME}" COMMITTER`; \
24 ' "$@"
25
26 rm -f $tmp