From 60162d7882e4085a380dbadcd3b592fbf6bcc215 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 25 Jun 2026 19:46:59 +0200 Subject: [PATCH] fix: branch detection now correctly filters HEAD and arrow entries - grep -v '\->' removes the 'origin/HEAD -> origin/main' line - grep -v '^HEAD$' removes stray HEAD entries - sed trims whitespace and strips 'origin/' prefix - sort -u deduplicates across repos - Result: only clean branch names like 'main', 'dev', 'Dev' --- update-Nitrov3.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/update-Nitrov3.sh b/update-Nitrov3.sh index 9c28f36..56b69d4 100755 --- a/update-Nitrov3.sh +++ b/update-Nitrov3.sh @@ -1689,13 +1689,21 @@ detect_available_branches() { local result=() for repo in "${repos[@]}"; do [ -d "$repo/.git" ] || continue - for b in $(cd "$repo" && git branch -r 2>/dev/null | sed 's/origin\///' | xargs 2>/dev/null); do + local branches + branches=$(cd "$repo" && git branch -r 2>/dev/null | \ + grep -v '\->' | \ + sed 's/^[[:space:]]*//' | \ + sed 's/^origin\///' | \ + grep -v '^HEAD$' | \ + sort -u) + while IFS= read -r b; do + [ -z "$b" ] && continue local found=false for ab in "${result[@]}"; do [ "$ab" = "$b" ] && found=true && break done $found || result+=("$b") - done + done <<< "$branches" done printf '%s\n' "${result[@]}" }