This patch set is meant to start addressing #2619 (closed) which is to enable support for the new worktree functionality.
This patch includes the work of:
Patrick Steinhardt: submitted a pull request (that has not yet been accepted) to the libgit2 project
@ch3cooli: started implementing the new worktree support into tortoisegit
I have been using the first couple of evolutions of this patchset in my production work environment and have finally got it to a point where it is ready to be presented to the general public for more suggestions.
I realize that the the upstream Git community still calls git worktree's experimental, however I need this in production and the git-for-windows community does not support the predecessor to git worktree git-new-workdir and would like to now start supporting worktree
Known to be working:
- Ordinary operations of tortoise git
- All tests pass
- Linked worktree's now work with TortoiseGitProc
- Linked worktree's now work with TGitCache
- A couple more tests were added to test worktrees.
Known Issues
- Attempting to delete a branch from a disconnected worktree throws error "Could not delete reference. libgit2 returned: Reference 'refs/heads/branch' not found" will need more debugging)
- More tests could afford to be written for worktrees
- Need to test this patch set with TGitMerge/TGitIDiff. One specific thing to test is "Does resolving conflicts from TGitMerge/TGitIDiff work"
Former Known Issues that are now resolved
- Files in submodules do not appear to be reporting proper file status via TGitCache (which makes sense due to the .git file that worktree uses as well so that