fix(sync): add --sparse flag to git add for worktree compatibility (#1143)
Fixes #1076. When git worktrees have sparse-checkout enabled, git add operations can fail with 'outside of sparse-checkout cone' errors. Adding the --sparse flag allows git to stage files outside the sparse-checkout cone. Changes: - Add --sparse flag to git add in daemon_sync_branch.go (line 165) - Add --sparse flag to git add in migrate_sync.go (line 343) - Add --sparse flag to git add in sync_branch.go (line 308) - Add --sparse flag to git add in worktree.go (line 732) All changes include comments referencing #1076 for traceability.
This commit is contained in:
@@ -339,7 +339,8 @@ func commitInitialSyncState(ctx context.Context, worktreePath, jsonlRelPath stri
|
||||
beadsRelDir := filepath.Dir(jsonlRelPath)
|
||||
|
||||
// Stage all beads files
|
||||
addCmd := exec.CommandContext(ctx, "git", "-C", worktreePath, "add", beadsRelDir)
|
||||
// Use --sparse to work correctly with sparse-checkout enabled worktrees (fixes #1076)
|
||||
addCmd := exec.CommandContext(ctx, "git", "-C", worktreePath, "add", "--sparse", beadsRelDir)
|
||||
if err := addCmd.Run(); err != nil {
|
||||
return fmt.Errorf("git add failed: %w", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user