#!/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