aboutsummaryrefslogblamecommitdiffstats
path: root/git-svn-fix-authors.sh
blob: 7b46ef40e6fc659925f8abbfc96d288b503e3aa2 (plain) (tree)
1
2
3
4
5
6
7
8
9
10


         

                                                              
                                             
            


                                                
                                                         

                        


                                                                                      


                                











                                                                       
  


                                   
 














                                                                                      



                                  
  
          
#!/bin/sh
set -eu

AUTHORS_FILE=$(git config svn.authorsfile) || \
    AUTHORS_FILE=$(git config svn-remote.svn.authorsfile) || {
    echo "ERROR: set config.svn.authorsfile!"
    exit 128
}
export AUTHORS_FILE=$(readlink -f $AUTHORS_FILE)

git filter-branch -f --tag-name-filter cat --env-filter '

function replacement() {
    REPL=$(awk -F"[[:space:]]*=[[:space:]]*" "/$1/ {print \$2}" $AUTHORS_FILE)
    MAIL=$(echo "$REPL"|awk "{print \$NF}"|tr -d "<>" )
    NAME=$(echo "$REPL"|awk "{print gensub(/[[:space:]]*<[^[:space:]]*/,\"\",\"\")}" )
}

replacement "${GIT_AUTHOR_NAME}"
#if [ "x$NAME" == "x" ] ; then
#    echo -e "\nERROR: When changing ${GIT_COMMIT} we got empty reply."
#    echo -e "I do not know how to map ${GIT_AUTHOR_NAME}.\n"
#    set|grep ^GIT
#    exit 1
#fi

if [ "x$NAME" != "x" ] ; then
export GIT_AUTHOR_NAME="$NAME"
export GIT_AUTHOR_EMAIL="$MAIL"
export GIT_COMMITTER_NAME="$NAME"
export GIT_COMMITTER_EMAIL="$MAIL"
fi
' -- --tags

git filter-branch -f --env-filter '

function replacement() {
    REPL=$(awk -F"[[:space:]]*=[[:space:]]*" "/$1/ {print \$2}" $AUTHORS_FILE)
    MAIL=$(echo "$REPL"|awk "{print \$NF}"|tr -d "<>" )
    NAME=$(echo "$REPL"|awk "{print gensub(/[[:space:]]*<[^[:space:]]*/,\"\",\"\")}" )
}

replacement "${GIT_AUTHOR_NAME}"
#if [ "x$NAME" == "x" ] ; then
#    echo -e "\nERROR: When changing ${GIT_COMMIT} we got empty reply."
#    echo -e "I do not know how to map ${GIT_AUTHOR_NAME}.\n"
#    set|grep ^GIT
#    exit 1
#fi

if [ "x$NAME" != "x" ] ; then
export GIT_AUTHOR_NAME="$NAME"
export GIT_AUTHOR_EMAIL="$MAIL"
export GIT_COMMITTER_NAME="$NAME"
export GIT_COMMITTER_EMAIL="$MAIL"
fi
' -- --all