]> git.wh0rd.org - home.git/blobdiff - .bin/git-rewrite-authors
git helpers
[home.git] / .bin / git-rewrite-authors
diff --git a/.bin/git-rewrite-authors b/.bin/git-rewrite-authors
new file mode 100755 (executable)
index 0000000..ce93381
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+tmp=$(mktemp)
+cat << \EOF > ${tmp}
+decode() {
+       awk -vid="$1" -vtype="$2" '$1 == id {
+               print "export GIT_"type"_NAME='\''" $3 " " $4 "'\'';"
+               print "export GIT_"type"_EMAIL='\''" $5 "'\'';"
+       }' ${author_file}
+}
+EOF
+
+for x in cvs-authors authors ; do
+       export author_file=${PWD}/.git/$x
+       [ -e ${author_file} ] && break
+done
+git filter-branch \
+       --env-filter ". ${tmp};"' \
+               eval `decode "${GIT_AUTHOR_NAME}" AUTHOR`; \
+               eval `decode "${GIT_COMMITTER_NAME}" COMMITTER`; \
+' "$@"
+
+rm -f $tmp