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=()
|
local result=()
|
||||||
for repo in "${repos[@]}"; do
|
for repo in "${repos[@]}"; do
|
||||||
[ -d "$repo/.git" ] || continue
|
[ -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
|
local found=false
|
||||||
for ab in "${result[@]}"; do
|
for ab in "${result[@]}"; do
|
||||||
[ "$ab" = "$b" ] && found=true && break
|
[ "$ab" = "$b" ] && found=true && break
|
||||||
done
|
done
|
||||||
$found || result+=("$b")
|
$found || result+=("$b")
|
||||||
done
|
done <<< "$branches"
|
||||||
done
|
done
|
||||||
printf '%s\n' "${result[@]}"
|
printf '%s\n' "${result[@]}"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user