From 700e024a4a93a266207a769937304b053611f30a Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Sat, 21 Mar 2026 10:05:24 -0700 Subject: [PATCH] fix: gstack-repo-mode handles repos without origin remote MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fall back through origin/main → origin/master → HEAD when git symbolic-ref refs/remotes/origin/HEAD is not set. Prevents shortlog crash in repos where origin/HEAD isn't configured. Co-Authored-By: Claude Opus 4.6 (1M context) --- bin/gstack-repo-mode | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/bin/gstack-repo-mode b/bin/gstack-repo-mode index 563f6a16..1a05cd2c 100755 --- a/bin/gstack-repo-mode +++ b/bin/gstack-repo-mode @@ -46,7 +46,17 @@ fi # Compute from git history (90-day window) # Use default branch (not HEAD) to avoid feature-branch sampling bias -DEFAULT_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|refs/remotes/||' || echo "origin/main") +DEFAULT_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|refs/remotes/||' || true) +# Fallback: try origin/main, then origin/master, then HEAD +if [ -z "$DEFAULT_BRANCH" ]; then + if git rev-parse --verify origin/main &>/dev/null; then + DEFAULT_BRANCH="origin/main" + elif git rev-parse --verify origin/master &>/dev/null; then + DEFAULT_BRANCH="origin/master" + else + DEFAULT_BRANCH="HEAD" + fi +fi SHORTLOG=$(git shortlog -sn --since="90 days ago" --no-merges "$DEFAULT_BRANCH" 2>/dev/null | head -20) if [ -z "$SHORTLOG" ]; then echo "REPO_MODE=unknown"