aboutsummaryrefslogtreecommitdiff
path: root/bin/git-blame-someone-else
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2018-12-22 18:19:29 -0200
committerEuAndreh <eu@euandre.org>2018-12-22 18:19:29 -0200
commitd4e6648afd61205136c98fdc56cf151eb437a078 (patch)
tree4503e78d64133edeb8679c57d58ac96d6fef7e9e /bin/git-blame-someone-else
parentmrconfig.ini. (diff)
downloaddotfiles-d4e6648afd61205136c98fdc56cf151eb437a078.tar.gz
dotfiles-d4e6648afd61205136c98fdc56cf151eb437a078.tar.xz
Move external scripts to bin/.
Diffstat (limited to 'bin/git-blame-someone-else')
-rwxr-xr-xbin/git-blame-someone-else21
1 files changed, 21 insertions, 0 deletions
diff --git a/bin/git-blame-someone-else b/bin/git-blame-someone-else
new file mode 100755
index 0000000..dd71826
--- /dev/null
+++ b/bin/git-blame-someone-else
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+
+# Taken from https://github.com/jayphelps/git-blame-someone-else/
+
+if [ $# -ne 2 ]; then
+ >&2 echo "Usage: $0 <author> <commit>"
+ exit 1
+fi
+
+AUTHOR=$1
+AUTHOR_NAME=$(echo $AUTHOR | perl -wlne '/^(.*?)\s*<.*>$/ and print $1')
+AUTHOR_EMAIL=$(echo $AUTHOR | perl -wlne '/^.*\s*<(.*)>$/ and print $1')
+COMMIT=$(git rev-parse --short $2)
+
+{
+ GIT_SEQUENCE_EDITOR="sed -i -e 's/^pick $COMMIT/edit $COMMIT/'" git rebase -i $COMMIT~1^^
+ GIT_COMMITTER_NAME="$AUTHOR_NAME" GIT_COMMITTER_EMAIL="$AUTHOR_EMAIL" git commit --amend --no-edit --author="$AUTHOR"
+ # git rebase --continue
+} &> /dev/null
+
+echo "$AUTHOR_NAME is now the author of $COMMIT. You're officially an asshole.";