Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
⚡ Improve retrieving worktree status
Large worktrees were causing significant delays in displaying the user interface. This was due to calculcating the hash of files to determine the overall status of the worktree. Go has poor performance with SHA1 hashing. Too many files were unnecessarily hashed as well. These combinations caused some repositories to take well over 10 seconds to display the user interface. This is a known problem in worktree status and an issue already exists. go-git/go-git#181 Shelling out to call "git status" allowed for significant performance increases often in the sub second range. A modified implementation was used based on: gitleaks/gitleaks#463 The variation tries to use "git status" and if it fails falls back to the original go-git implementation.
- Loading branch information