Skip to content

Leave working dir alone when unable to check out branch checked out in worktree#2803

Open
rodovich wants to merge 1 commit into
git-up:masterfrom
rodovich:fix/2713-worktree-checkout
Open

Leave working dir alone when unable to check out branch checked out in worktree#2803
rodovich wants to merge 1 commit into
git-up:masterfrom
rodovich:fix/2713-worktree-checkout

Conversation

@rodovich

Copy link
Copy Markdown
Contributor

Summary

Fixes #2713.

Previously, checkoutLocalBranch: wrote the target tree to the working directory and index before moving HEAD. When the branch is checked out in a linked worktree, git_repository_set_head() fails, leaving the applied tree changes behind as staged debris.

Testing

Added a test that checks out a branch in a worktree and then calls checkoutLocalBranch: and validates that the working directory is unchanged. Also tested manually.

GitUp 1.5.0 (1058): checking out the branch fails but leaves modified files in the index:

image image

Built from this branch: checking out fails (with a slightly clearer message) and does not touch the index:

image image

I AGREE TO THE GITUP CONTRIBUTOR LICENSE AGREEMENT.

…n worktree

Previously, `checkoutLocalBranch:` wrote the target tree to the working directory and index before moving HEAD. When the branch is checked out in a linked worktree, `git_repository_set_head()` fails, leaving the applied tree changes behind as staged debris (issue git-up#2713).
@lucasderraugh

Copy link
Copy Markdown
Collaborator

Thanks for the contribution. With worktrees rising in popularity thanks to AI tooling, I'm sure we have much to do to catch up.

I'm out this week but I'll working through my backlog of PRs next week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

GitUp leaves behind many incorrectly modified files when checkout of HEAD branch from alternate worktree fails (as expected)

2 participants