fix(sync): prevent circular error in pre-push hook (GH#532)
When bd sync pushes from the sync-branch worktree, the pre-push hook would detect uncommitted JSONL changes and suggest running bd sync - which is circular since that's what the user is already doing. Fix: Set BD_SYNC_IN_PROGRESS=1 environment variable when pushing from worktree, and update pre-push hook to skip checks when this var is set. Updated files: - internal/syncbranch/worktree.go: Set env var on push command - cmd/bd/templates/hooks/pre-push: Check for env var and exit early - examples/git-hooks/pre-push: Same check - .beads-hooks/pre-push: Same check
This commit is contained in:
@@ -25,6 +25,12 @@ if [ ! -d .beads ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Skip if bd sync is already in progress (GH#532: prevents circular error)
|
||||
# bd sync sets this env var when pushing from worktree
|
||||
if [ -n "$BD_SYNC_IN_PROGRESS" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Optionally flush pending bd changes so they surface in JSONL
|
||||
# This prevents the race where a debounced flush lands after the check
|
||||
if command -v bd >/dev/null 2>&1; then
|
||||
|
||||
Reference in New Issue
Block a user