From 72ceb16f5fe9bf8b05eeaa2bf89307abf5efa0e0 Mon Sep 17 00:00:00 2001 From: Benedikt Heine Date: Tue, 1 Jul 2025 14:30:38 +0200 Subject: [PATCH] Add git automatic range diff Co-authored-by: Felix Buehler --- bin/git-ard.sh | 23 +++++++++++++++++++++++ install.conf.yaml | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100755 bin/git-ard.sh 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 -