fix(dashboard): pull syncs the worktree to local integration tip, not just to origin
When the merger advances local `refs/heads/<integrationBranch>` via `update-ref` without pushing, the user's project-root worktree HEAD (symbolic to that branch) follows immediately to the new sha, but the working files and index don't. The integration-mode pull only ran `git merge --ff-only origin/<branch>`, which short-circuits as "already up to date" when local is ahead of origin — leaving the worktree visibly stale even though "Pull completed" was reported. Pull now explicitly `git reset --hard <localIntegrationTip>` after the origin fast-forward step. The autostash above protects user edits, so the reset is safe regardless of whether the origin FF ran. Regression test in routes-git.test.ts simulates the local-ahead-of-origin scenario and asserts the reset-to-local-tip is issued. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
9
.changeset/dashboard-pull-syncs-to-local-tip.md
Normal file
9
.changeset/dashboard-pull-syncs-to-local-tip.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
"@fusion/dashboard": patch
|
||||
---
|
||||
|
||||
fix(dashboard): pull syncs the worktree to local integration tip, not just to origin
|
||||
|
||||
The integration-mode `POST /api/git/pull` (used by the merge-advance-notice banner) only ran `git merge --ff-only origin/<branch>` after fetching. When the merger had advanced local `refs/heads/<integrationBranch>` via `update-ref` but the user hadn't pushed yet, the worktree's HEAD already resolved to the new sha (symbolic ref follow) but the working tree and index were still at the old state. The fast-forward step short-circuited (`already up to date with origin`) and the user saw "Pull completed" with `fromSha === toSha` while their files visibly stayed behind.
|
||||
|
||||
Pull now explicitly resets the worktree to `refs/heads/<integrationBranch>` after the origin fast-forward step. The autostash above protects user edits, so the reset is safe regardless of whether the origin FF ran.
|
||||
Reference in New Issue
Block a user