diff --git a/bin/git-ard.sh b/bin/git-ard.sh new file mode 100755 index 0000000..a1d5311 --- /dev/null +++ b/bin/git-ard.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +# Git automatic range diff + +# Enforce being in a git repository +git rev-parse --is-inside-work-tree >/dev/null || exit $? + +# We actually should check out the head branch via `git remote show ${REMOTE}`, +# but this requires active connection and active 2FA verification. Tedious to +# have multiple calls for this +if git rev-parse --verify main &>/dev/null; then + MAIN_BRANCH=main +else + MAIN_BRANCH=master +fi + +CURRENT_BRANCH="$(git rev-parse --abbrev-ref HEAD)" +GIT_REMOTE=origin + +# Show the next command +set -x + +git range-diff "${GIT_REMOTE}/${MAIN_BRANCH}..${GIT_REMOTE}/${CURRENT_BRANCH}" "${MAIN_BRANCH}..${CURRENT_BRANCH}" diff --git a/install.conf.yaml b/install.conf.yaml index 1aa60f5..cf302c1 100644 --- a/install.conf.yaml +++ b/install.conf.yaml @@ -76,6 +76,7 @@ - link: ~/.local/bin/host-is-on: bin/host-is-on.sh ~/.local/bin/git-authors: bin/git-authors.sh + ~/.local/bin/git-ard: bin/git-ard.sh ~/.local/bin/clean: bin/clean.sh # systemd @@ -88,4 +89,3 @@ - link: ~/.local/bin/diff-so-fancy: git/diff-so-fancy/diff-so-fancy -