From 6a45c9e53b5930f023fad3123a36f9a8cda77ccb Mon Sep 17 00:00:00 2001 From: wangzengdi Date: Sun, 11 Sep 2016 20:46:50 +0800 Subject: [PATCH 1/3] change git current branch old email with new email in batches --- plugins/git/git.plugin.zsh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 6197c234b..a94d8ea1b 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -32,6 +32,23 @@ function work_in_progress() { echo "WIP!!" fi } +#change current branch old email with new eamil +gmvemail() { + export OLD_GIT_EMAIL=$1 + export NEW_GIT_EMAIL=$2 + git filter-branch --commit-filter ' + if [ "$GIT_AUTHOR_EMAIL" = "$OLD_GIT_EMAIL" ]; + then + GIT_AUTHOR_EMAIL="$NEW_GIT_EMAIL"; + git commit-tree "$@"; + else + git commit-tree "$@"; + fi' HEAD + unset OLD_GIT_EMAIL + unset NEW_GIT_EMAIL + BRANCH_NAME=$(git symbolic-ref --short HEAD) + git update-ref -d refs/original/refs/heads/${BRANCH_NAME} +} # # Aliases From 6f5a9d57aeb4c2b5f759e4d533842c3f597bbebf Mon Sep 17 00:00:00 2001 From: wangzengdi Date: Sun, 11 Sep 2016 23:45:25 +0800 Subject: [PATCH 2/3] 1.remove $BRANCH_NAME; 2.change email temp name to avoid wrongly changed env var --- plugins/git/git.plugin.zsh | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index a94d8ea1b..8b49b8da1 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -34,20 +34,19 @@ function work_in_progress() { } #change current branch old email with new eamil gmvemail() { - export OLD_GIT_EMAIL=$1 - export NEW_GIT_EMAIL=$2 + export GMVEMAIL_GIT_EMAIL_OLD=$1 + export GMVEMAIL_GIT_EMAIL_NEW=$2 git filter-branch --commit-filter ' - if [ "$GIT_AUTHOR_EMAIL" = "$OLD_GIT_EMAIL" ]; + if [ "$GIT_AUTHOR_EMAIL" = "$GMVEMAIL_GIT_EMAIL_OLD" ]; then - GIT_AUTHOR_EMAIL="$NEW_GIT_EMAIL"; + GIT_AUTHOR_EMAIL="$GMVEMAIL_GIT_EMAIL_NEW"; git commit-tree "$@"; else git commit-tree "$@"; fi' HEAD - unset OLD_GIT_EMAIL - unset NEW_GIT_EMAIL - BRANCH_NAME=$(git symbolic-ref --short HEAD) - git update-ref -d refs/original/refs/heads/${BRANCH_NAME} + unset GMVEMAIL_GIT_EMAIL_OLD + unset GMVEMAIL_GIT_EMAIL_NEW + git update-ref -d refs/original/refs/heads/$(git symbolic-ref --short HEAD) } # From 77e96ce382f7848935f6f38769988722afc2ca25 Mon Sep 17 00:00:00 2001 From: wangzengdi Date: Tue, 13 Sep 2016 10:30:28 +0800 Subject: [PATCH 3/3] change temp email var to subshell --- plugins/git/git.plugin.zsh | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 8b49b8da1..1298dcef8 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -34,18 +34,14 @@ function work_in_progress() { } #change current branch old email with new eamil gmvemail() { - export GMVEMAIL_GIT_EMAIL_OLD=$1 - export GMVEMAIL_GIT_EMAIL_NEW=$2 - git filter-branch --commit-filter ' - if [ "$GIT_AUTHOR_EMAIL" = "$GMVEMAIL_GIT_EMAIL_OLD" ]; + OLD_EMAIL=$1 NEW_EMAIL=$2 git filter-branch --commit-filter ' + if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]; then - GIT_AUTHOR_EMAIL="$GMVEMAIL_GIT_EMAIL_NEW"; - git commit-tree "$@"; + GIT_AUTHOR_EMAIL="$NEW_EMAIL"; + git commit-tree "$@"; else - git commit-tree "$@"; + git commit-tree "$@"; fi' HEAD - unset GMVEMAIL_GIT_EMAIL_OLD - unset GMVEMAIL_GIT_EMAIL_NEW git update-ref -d refs/original/refs/heads/$(git symbolic-ref --short HEAD) }