* fix(sync): respect sync.branch config when no upstream tracking When sync.branch is explicitly configured, bd sync should use worktree-based sync even if the current branch has no upstream tracking. This fixes the issue where jj (Jujutsu) colocated repos and git worktrees without upstream would incorrectly fall back to --from-main mode. The fix checks for sync.branch configuration BEFORE the upstream check, allowing the configured sync branch to take precedence. Affected workflows: - jj colocated repos (always use detached HEAD) - Git worktrees not tracking a remote - Temporary checkouts for testing Fixes #638 * test(sync): add regression tests for sync.branch priority over upstream check Add tests verifying that when sync.branch is configured, bd sync does NOT fall back to --from-main mode even without upstream tracking. This covers: - sync.branch configured without upstream (should use worktree sync) - No sync.branch and no upstream (should fallback to from-main) - Detached HEAD with sync.branch (jj workflow, should use worktree sync) These tests ensure the fix for GH#638 doesn't regress. --------- Co-authored-by: Charles P. Cross <cpdata@users.noreply.github.com>
76 KiB
76 KiB