X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=bin%2Fgit-edit-email;fp=bin%2Fgit-edit-email;h=e79a950d6201100b4216ac382c0b1f60c474203e;hb=2b274490f244972350c8a846a937b7567675e1e9;hp=0000000000000000000000000000000000000000;hpb=f4e0bb584286823e5e91ee98b2039ae0cbb5a067;p=khome.git diff --git a/bin/git-edit-email b/bin/git-edit-email new file mode 100755 index 0000000..e79a950 --- /dev/null +++ b/bin/git-edit-email @@ -0,0 +1,54 @@ +#!/bin/sh + +# ============================================================================= +# This is a modified version of this: +# https://help.github.com/articles/changing-author-info +# ============================================================================= + + +FILTER_SCRIPT_TEMPLATE=' +an="$GIT_AUTHOR_NAME"; +am="$GIT_AUTHOR_EMAIL"; +cn="$GIT_COMMITTER_NAME"; +cm="$GIT_COMMITTER_EMAIL"; + +if [ "$GIT_COMMITTER_EMAIL" = "OLD_COMMITTER_EMAIL" ]; +then + cn="$GIT_COMMITTER_NAME"; + cm="NEW_COMMITTER_EMAIL"; +fi; + +if [ "$GIT_AUTHOR_EMAIL" = "OLD_AUTHOR_EMAIL" ]; +then + an="$GIT_AUTHOR_NAME"; + am="NEW_AUTHOR_EMAIL"; +fi; + +export GIT_AUTHOR_NAME="$an"; +export GIT_AUTHOR_EMAIL="$am"; +export GIT_COMMITTER_NAME="$cn"; +export GIT_COMMITTER_EMAIL="$cm"; +' + + +git_filter_branch() { + git filter-branch -f --env-filter "$1" +} + + +main() { + old_email="$1" + new_email="$2" + + filter_script=$(\ + echo $FILTER_SCRIPT_TEMPLATE \ + | sed "s/OLD_COMMITTER_EMAIL/$old_email/g" \ + | sed "s/NEW_COMMITTER_EMAIL/$new_email/g" \ + | sed "s/OLD_AUTHOR_EMAIL/$old_email/g" \ + | sed "s/NEW_AUTHOR_EMAIL/$new_email/g" \ + ) + + git_filter_branch "$filter_script" +} + +main "$@"