Skip to content

Instantly share code, notes, and snippets.

@leif81
Created March 9, 2011 21:50
Show Gist options
  • Save leif81/863084 to your computer and use it in GitHub Desktop.
Save leif81/863084 to your computer and use it in GitHub Desktop.
Written to change the unix name used for a cvs commit to a pretty git name for the user. Implementation borrowed from http://lists.freedesktop.org/archives/portland/2010-October.txt author-conv-file format (same format as git-cvsimport requires):
#!/bin/bash
export $authors_file=author-conv-file
git filter-branch -f --env-filter '
get_name () {
grep "^$1=" "$authors_file" |
sed "s/^.*=\(.*\) <.*>$/\1/"
}
get_email () {
grep "^$1=" "$authors_file" |
sed "s/^.*=.* <\(.*\)>$/\1/"
}
GIT_AUTHOR_NAME=$(get_name $GIT_COMMITTER_NAME) &&
GIT_AUTHOR_EMAIL=$(get_email $GIT_COMMITTER_NAME) &&
GIT_COMMITTER_NAME=$GIT_AUTHOR_NAME &&
GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL &&
export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL &&
export GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL
' -- --all
@hustcc
Copy link

hustcc commented Aug 22, 2019

Sample author-conv-file:

john=John Doe <[email protected]>
jill=Jill Doe <[email protected]>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment