From 1a544ef9580f7b64ce789a1dfe26b112b399eb9b Mon Sep 17 00:00:00 2001 From: Harald Pfeiffer Date: Sun, 19 Apr 2026 12:27:53 +0200 Subject: fix: abandon ship if we are not on a branch, also skip unnecessary awk by using for-each-ref --- bin/git-update-all | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'bin/git-update-all') diff --git a/bin/git-update-all b/bin/git-update-all index d3f6033..0855339 100755 --- a/bin/git-update-all +++ b/bin/git-update-all @@ -5,13 +5,16 @@ GITBIN='/usr/bin/git' # 1. Pull the current branch and also tags, and prune references vanished from remote "$GITBIN" pull -tpf || exit 110 # 2. Pull all branches existing locally -mybr="$("$GITBIN" branch --show-current)" -while read -r branch -do - ( - printf '\033[1m\033[3mSwitching to %b.\033[0m\n' "$branch" - "$GITBIN" switch "$branch" &&\ - "$GITBIN" pull &&\ - "$GITBIN" switch "$mybr" - ) -done < <("$GITBIN" branch --list|awk '{print $NF}'|grep -vP "^${mybr}\$") +if ! mybr="$("$GITBIN" symbolic-ref --short HEAD 2>/dev/null)"; then + printf 'Not on a branch, aborting.\n' >&2 +else + while read -r branch + do + ( + printf '\033[1m\033[3mSwitching to %b.\033[0m\n' "$branch" + "$GITBIN" switch "$branch" &&\ + "$GITBIN" pull &&\ + "$GITBIN" switch "$mybr" + ) + done < <("$GITBIN" for-each-ref --format='%(refname:short)' refs/heads/ | grep -vP "^${mybr}\$") +fi -- cgit v1.2.3