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[@]}" }