* fix(sync): use sync-branch worktree for --full --no-pull (#1173) Bug 1: PullFromSyncBranch was copying uncommitted worktree changes to main repo when remoteAhead==0. This corrupted the 3-way merge because local changes appeared as remote changes. Fixed by copying only the committed state from HEAD instead of the working directory. Bug 2: doExportOnlySync was checking main repo for changes via gitHasBeadsChanges, but when sync-branch is configured, changes go to the worktree, not main. Fixed by detecting sync-branch config and using CommitToSyncBranch which operates on the worktree. Fixes #1173 * refactor(sync): consolidate sync-branch detection and commit/push logic Extract repeated patterns into reusable helpers: - SyncBranchContext struct: holds branch name and repo root - getSyncBranchContext(): detects sync-branch config from store - commitAndPushBeads(): handles both sync-branch and regular git workflows This eliminates duplicated sync-branch detection code (was in 3 places) and the duplicated commit/push conditional logic (was in 2 places). Net reduction of ~20 lines while improving maintainability. * fix: remove unused bool return from commitAndPushBeads
45 KiB
45 KiB