You've already forked Atomcms-edit
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'
This commit is contained in:
+10
-2
@@ -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[@]}"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user