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:
@@ -28,6 +28,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
|
||||
|
||||
# Check if sync-branch is configured in config.yaml or env var
|
||||
# If so, .beads changes go to a separate branch via worktree, not the current branch
|
||||
SYNC_BRANCH="${BEADS_SYNC_BRANCH:-}"
|
||||
|
||||
Reference in New Issue
Block a user