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:
@@ -728,6 +728,9 @@ func pushFromWorktree(ctx context.Context, worktreePath, branch string) error {
|
||||
for attempt := 0; attempt < maxRetries; attempt++ {
|
||||
// Push with explicit remote and branch, set upstream if not set
|
||||
cmd := exec.CommandContext(ctx, "git", "-C", worktreePath, "push", "--set-upstream", remote, branch)
|
||||
// Set BD_SYNC_IN_PROGRESS so pre-push hook knows to skip checks (GH#532)
|
||||
// This prevents circular error where hook suggests running bd sync
|
||||
cmd.Env = append(os.Environ(), "BD_SYNC_IN_PROGRESS=1")
|
||||
output, err := cmd.CombinedOutput()
|
||||
|
||||
if err == nil {
|
||||
|
||||
Reference in New Issue
Block a user