What's Changed
This release has massive changes, but most of them should hopefully not be visible: I completely overhauled lazygit's concurrency model, which was, let's say, less than robust; there were lots of data races, and we were just lucky that this didn't result in crashes or misbehavior more often. We now have a robust concurrency model with no known data races, and in fact we run our integration test suite on CI with the -race flag to prove that. The user visible part of this is that some operations run a little more smoothly now; for example, there used to be an ugly spinner freeze at the end of checking out a branch, which is now gone.
However, since the changes were so massive there's a higher-than-usual chance of regressions, so please report any that you find.
Apart from that, we also have a few useful enhancements; the most notable one is probably that we now show the Github checks status of pull requests in the branches panel.
Enhancements 🔥
- Show a spinner for more long-running operations by @stefanhaller in #5765
- Remove the BLOCK_UI refresh mode by @stefanhaller in #5790
- Support a
{{diffContext}}template variable in external diff command by @stefanhaller in #5841 - Some small UI polish by @stefanhaller in #5853
- Auto-scroll when dragging to create range selection in staging view by @stefanhaller in #5855
- Create a range selection in list views by dragging with the mouse by @stefanhaller in #5856
- Reorder commits (or rebase todos) by dragging with the mouse by @stefanhaller in #5857
- Rework the custom pager config (rename to diff renderer) by @stefanhaller in #5870
- Show a Github PR's combined checks state in branches list (and main view for selected branch) by @stefanhaller in #5874
Fixes 🔧
- Fix stuck inline status when pushing/fetching by @stefanhaller in #5768
- Escape the merge conflicts view before prompting to continue the rebase by @stefanhaller in #5822
- Fix side panel rendering when branches/commits are not their panel's first tab by @stefanhaller in #5825
- Suppress output from a few git commands that pollute the command log by @stefanhaller in #5834
- Fix stall with ctrl+z and fg by @stefanhaller in #5830
- Fix more problems related to concurrent repo switch and background refresh by @stefanhaller in #5839
- Fix Windows crash when switching to fullscreen mode with a custom pager by @stefanhaller in #5838
- Fix multi-selection of files with common prefix not working in commit files panel by @stefanhaller in #5868
- Support absolute paths when detecting edit preset from EDITOR env var by @stefanhaller in #5876
- Exclude more commit trailers from auto-wrapping by @stefanhaller in #5871
- Prevent stale index.lock files from diffs rendered through a pty on Windows by @stefanhaller in #5888
- Fix orphaned processes on Windows when quickly navigating between commits by @stefanhaller in #5885
Maintenance ⚙️
- Perform refresh model and view updates on the UI thread instead of using mutexes by @stefanhaller in #5767
- Fix data race with status string by @stefanhaller in #5777
- Fix data race with command log by @stefanhaller in #5779
- Make integration tests using commits more robust by @stefanhaller in #5782
- Synchronize ViewBufferManager.Close with a starting task by @stefanhaller in #5786
- Make model<->view index conversions independent of rendering by @stefanhaller in #5785
- Fix idle notification deadlock by @stefanhaller in #5821
- Bump tcell to an unreleased snapshot to fix a shutdown race by @stefanhaller in #5824
- Fix command log streaming race by @stefanhaller in #5789
- Synchronize async view rendering by @stefanhaller in #5791
- Run tests with race detection on CI by @stefanhaller in #5792
- Gocui mouse event fixes by @stefanhaller in #5854
- Move Github PR cache out of state.yml into a separate file by @stefanhaller in #5884
- Make justfile commands available in the Nix development shell by @TyceHerrman in #5890
Docs 📖
- Clarify contribution policy by @stefanhaller in #5809
I18n 🌎
- Update translations from Crowdin by @stefanhaller in #5891
Performance Improvements 📊
- Make scrolling down a very long diff with the scroll wheel much smoother by @stefanhaller in #5780
New Contributors
- @TyceHerrman made their first contribution in #5890
Full Changelog: v0.63.1...v0.64.0