Releases: jesseduffield/lazygit
Release list
v0.64.0
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
v0.63.1
Fixes for a few regressions introduced in the v0.63.0 release.
What's Changed
Fixes π§
- Improve index.lock retry mechanism by @stefanhaller in #5788
- Fix userEvents panic by @stefanhaller in #5793
- Fix a deadlock on Windows when switching between longer diffs by @stefanhaller in #5815
Maintenance βοΈ
- Allow releasing from a branch other than master by @stefanhaller in #5819
Full Changelog: v0.63.0...v0.63.1
v0.63.0
What's Changed
Enhancements π₯
- Add direnv support by @stefanhaller in #5660
- Improve cycling through multiple pagers by @stefanhaller in #5678
- Detect external repo changes via background polling by @stefanhaller in #5662
- Make the side panels configurable by @stefanhaller in #5702
- Add a global keybinding for editing the config file by @stefanhaller in #5728
- Improve resolving non-textual and submodule merge conflicts by @stefanhaller in #5735
- Auto-dismiss the continue-rebase prompt when it becomes stale by @stefanhaller in #5758
- Support custom pagers and passphrase prompts on Windows by @stefanhaller in #5740
- Make creating worktrees simpler and less error-prone by @stefanhaller in #5741
- Improve deleting worktrees and their branches by @stefanhaller in #5748
- Allow overriding the platform used for default keybindings by @stefanhaller in #5671
- Add
gui.shrinkSidePanelsToContentoption by @stefanhaller in #5754 - Show renamed files in the custom patch builder by @stefanhaller in #5759
Fixes π§
- Fix unstaging a submodule with dirty content by @stefanhaller in #5666
- Fix coloring of wrapped delta lines by @stefanhaller in #5711
- Fix Files Panel artefacts during rebase commands by @stefanhaller in #5661
- Keep selected commits stable across refreshes by @stefanhaller in #5717
- Fix quoting of shell commands on Windows by @stefanhaller in #5704
- Silently consume unrecognized or malformed escape sequences by @stefanhaller in #5738
- Don't include common ancestor when picking "both" for a conflict in diff3 style by @stefanhaller in #5747
Maintenance βοΈ
- Some fixes to our infrastructure by @stefanhaller in #5705
- Restructure the
justrecipes for running integration tests by @stefanhaller in #5720 - Fix flaky TestNewCmdTaskInstantStop test by @stefanhaller in #5743
- Bump golang.org/x/sync from 0.20.0 to 0.21.0 by @dependabot[bot] in #5684
- Bump golang.org/x/sys from 0.45.0 to 0.46.0 by @dependabot[bot] in #5685
- Bump github.com/sahilm/fuzzy from 0.1.2 to 0.1.3 by @dependabot[bot] in #5706
- Bump actions/cache from 5 to 6 by @dependabot[bot] in #5722
- Bump actions/checkout from 6 to 7 by @dependabot[bot] in #5723
- Bump goreleaser/goreleaser-action from 7.2.2 to 7.2.3 by @dependabot[bot] in #5745
- Bump golangci/golangci-lint-action from 9.2.0 to 9.3.0 by @dependabot[bot] in #5746
- Bump golang.org/x/net from 0.47.0 to 0.55.0 by @dependabot[bot] in #5752
- Pin gofumpt version to 0.9.2 by @stefanhaller in #5753
- Fix a few flaky tests by @stefanhaller in #5756
I18n π
- Update translations from Crowdin by @stefanhaller in #5760
Performance Improvements π
- Prevent staging from becoming slower over time by @stefanhaller in #5712
Full Changelog: v0.62.2...v0.63.0
v0.62.2
This fixes another small regression introduced in 0.62.0. For the full list of changes in 0.62, see here.
What's Changed
Fixes π§
- Fix the waiting status display for synchronous operations by @stefanhaller in #5659
Full Changelog: v0.62.1...v0.62.2
v0.62.1
This fixes a regression (crash) introduced in 0.62.0. For the full list of changes in 0.62, see here.
What's Changed
Fixes π§
- Fix crash when keybindings are disabled that normally show in the status bar by @stefanhaller in #5655
Docs π
- Add docs for how to add the default, non-pager diff to the list of pagers by @stefanhaller in #5656
Full Changelog: v0.62.0...v0.62.1
v0.62.0
The big change in this release is what I have been referring to as the "keybinding revamp": it allows you to use richer keybindings than the few that were available before; see Custom_Keybindings.md for details. It also describes a new keybinding syntax that is a bit more intuitive than the previous <c-x> notation (but the old one is still supported for backwards compatibility).
Note the section about Terminal compatibility in that document; not all terminals support the new protocol equally well, so it may be a good idea to switch to one that does.
Breaking change: The default keybinding for submitting a commit from the commit description editor has changed from alt-enter to command-enter on Mac, or ctrl-enter on Linux and Windows; these are the same bindings that are used in many multi-line edit field situations, e.g. in GitHub comments. Unfortunately these are not supported by all terminals; see the above-mentioned terminal compatibility for more on that. If you want to revert this change, you can do so by adding the following to your config:
keybinding:
universal:
confirmInEditor: [<alt+enter>, <ctrl+s>]The complete list of changes follows:
What's Changed
Enhancements π₯
- Retry on ref lock errors during fetch/pull by @majiayu000 in #5161
- Preserve whitespace when remembering commit message by @stefanhaller in #5528
- Define PR colors as hex colors to make them the same as GitHub's by @stefanhaller in #5480
- Revamp keybinding mechanism to support richer keybindings (e.g.
ctrl-alt-shift-x) by @stefanhaller in #5563 - Platform-specific edit bindings for move-by-word and backspace-word by @stefanhaller in #5564
- Change canonical keybinding syntax (
<ctrl+a>instead of<c-a>) by @stefanhaller in #5565 - Use more widely-supported Unicode symbols for the commit graph by @stefanhaller in #5573
- Show push URLs for remotes that have any by @stefanhaller in #5576
- Support GitHub Enterprise for the Pull Requests feature by @stefanhaller in #5596
- Allow keybindings to configure more than one key by @stefanhaller in #5634
- Add
<alt+up>/<alt+down>as alternate keybindings for moving commits up/down by @stefanhaller in #5637 - Add support for git flow using the git-flow-next tool by @hmaddocks in #5288
Fixes π§
- Fix copying a file's absolute path when running in a linked worktree by @stefanhaller in #5523
- Preserve commit message when quitting while the commit message panel is open by @stefanhaller in #5524
- Stop showing cached PRs when we no longer have a base remote by @stefanhaller in #5543
- If multiple remotes exist but only one is a Github remote, pick it without prompting by @stefanhaller in #5544
- Fix cherry-picking a range selection of commits by @stefanhaller in #5599
- Dont log GitHub PR fetching errors to the Command log by @stefanhaller in #5600
- Avoid auto-forwarding main branches checked out in other worktrees by @stefanhaller in #5621
- Fix cycling pagers when main view is focused by @stefanhaller in #5639
Maintenance βοΈ
- Bump samber.lo to latest version by @stefanhaller in #5545
- Bump github.com/kyokomi/emoji/v2 from 2.2.8 to 2.2.13 by @dependabot[bot] in #5481
- Bump github.com/gookit/color from 1.4.2 to 1.6.0 by @dependabot[bot] in #5482
- Bump github.com/sirupsen/logrus from 1.9.3 to 1.9.4 by @dependabot[bot] in #5483
- Bump dario.cat/mergo from 1.0.1 to 1.0.2 by @dependabot[bot] in #5484
- Bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 by @dependabot[bot] in #5514
- Bump goreleaser/goreleaser-action from 7.0.0 to 7.1.0 by @dependabot[bot] in #5529
- Bump actions/github-script from 8 to 9 by @dependabot[bot] in #5515
- Bump golang.org/x/sys from 0.42.0 to 0.43.0 by @dependabot[bot] in #5548
- Copy gocui into lazygit repo by @stefanhaller in #5561
- Update to tcell v3 by @stefanhaller in #5562
- Clear LC_* env vars when running LANG tests by @AntoineGS in #5568
- Fix failing windows tests by @stefanhaller in #5574
- Fix new gopls linter warnings by @stefanhaller in #5580
- Disable gh telemetry when running integration tests by @stefanhaller in #5587
- Fix the check_for_fixups.sh script again by @stefanhaller in #5590
- Add script to preview release notes by @stefanhaller in #5620
- Bump github.com/gookit/color from 1.6.0 to 1.6.1 by @dependabot[bot] in #5586
- Bump github.com/sahilm/fuzzy from 0.1.1 to 0.1.2 by @dependabot[bot] in #5606
- Bump golang.org/x/sys from 0.43.0 to 0.45.0 by @dependabot[bot] in #5607
- Bump github.com/gdamore/tcell/v3 from 3.3.0 to 3.4.0 by @dependabot[bot] in #5618
- Bump goreleaser/goreleaser-action from 7.1.0 to 7.2.2 by @dependabot[bot] in #5619
Docs π
- Fix undo shortcut in Undoing.md by @stefanhaller in #5640
- Update docs and schema for release by @stefanhaller in #5645
I18n π
- Update translations from Crowdin by @stefanhaller in #5644
Performance Improvements π
- Improve performance of showDivergenceFromBaseBranch by @AntoineGS in #5536
- Redraw only the spinner when nothing else has changed by @AntoineGS in #5571
- Improve inline spinner performance by @stefanhaller in #5592
New Contributors
- @majiayu000 made their first contribution in #5161
- @AntoineGS made their first contribution in #5536
- @hmaddocks made their first contribution in #5288
Full Changelog: v0.61.1...v0.62.0
v0.61.1
This release has just a few fixes for the recently added GitHub pull requests feature.
What's Changed
Enhancements π₯
- Hide closed pull requests on main branches by @stefanhaller in #5501
Fixes π§
- Normalize repository owner casing to fix GitHub PR integration by @bradly0cjw in #5495
- Don't default the base repo for pull requests to "origin" by @stefanhaller in #5508
Maintenance βοΈ
- Security fix: avoid using
${{ }}variable interpolation inrun:steps by @orbisai0security in #5487 - Add a justfile by @stefanhaller in #5490
New Contributors
- @orbisai0security made their first contribution in #5487
- @bradly0cjw made their first contribution in #5495
Full Changelog: v0.61.0...v0.61.1
v0.61.0
The big one in this release is support for GitHub pull requests. They are shown as little GitHub icons next to each branch that has one, and you can open a PR in the browser by pressing shift-G. To enable this, all you need to do is install the gh tool if you haven't already, and log in using gh auth login.
What's Changed
Features β¨
- Show pull requests against branches by @jesseduffield in #2781
Enhancements π₯
- Add support for clicking on arrows in the file list to expand/collapse directories by @blakemckeany in #5365
- Remove empty directories after discarding untracked files by @stefanhaller in #5408
- Make file sort order and case sensitivity configurable, and default to mix files and folders by @stefanhaller in #5427
- Allow customizing the window width/height thresholds for when to use portrait mode by @stefanhaller in #5452
- Log hashes of local branches when deleting them by @stefanhaller in #5441
- Add condition field to custom command prompts by @mrt181 in #5364
Fixes π§
- Fix staging only some lines of a block of consecutive changes by @stefanhaller in #5396
- Fix the expanded layout of the branches panel (half and full screen modes) by @stefanhaller in #5413
- Fix searching commits or main view after switching repos by @stefanhaller in #5424
- Scroll to top when showing subcommits by @stefanhaller in #5425
- Fix patch commands when git config has color=always by @matthijskooijman in #5405
- Don't stage out-of-date submodules when asking user to auto-stage after resolving conflicts by @stefanhaller in #5440
Maintenance βοΈ
- Remove go-git dependency by @stefanhaller in #5420
- Make Debian/Ubuntu install command architecture-independent by @discapes in #5386
- Bump github.com/buger/jsonparser from 1.1.1 to 1.1.2 by @dependabot[bot] in #5423
- fix: pin 7 unpinned action(s), extract 1 inline secret to env var by @dagecko in #5439
- Fix dependabot config file by @stefanhaller in #5443
- Bump actions/cache from 4 to 5 by @dependabot[bot] in #5444
- Bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #5445
- Bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #5446
- Bump github.com/lucasb-eyer/go-colorful from 1.3.0 to 1.4.0 by @dependabot[bot] in #5447
- Bump github.com/spf13/afero from 1.9.5 to 1.15.0 by @dependabot[bot] in #5448
- Bump github.com/creack/pty from 1.1.11 to 1.1.24 by @dependabot[bot] in #5449
- Bump github.com/stretchr/testify from 1.10.0 to 1.11.1 by @dependabot[bot] in #5450
- Bump github.com/sanity-io/litter from 1.5.2 to 1.5.8 by @dependabot[bot] in #5451
- Bump github.com/adrg/xdg from 0.4.0 to 0.5.3 by @dependabot[bot] in #5456
- Bump github.com/spkg/bom from 0.0.0-20160624110644-59b7046e48ad to 1.0.1 by @dependabot[bot] in #5457
- Bump github.com/integrii/flaggy from 1.4.0 to 1.8.0 by @dependabot[bot] in #5458
- Bump github.com/sahilm/fuzzy from 0.1.0 to 0.1.1 by @dependabot[bot] in #5459
- Bump github.com/sasha-s/go-deadlock from 0.3.6 to 0.3.9 by @dependabot[bot] in #5460
Docs π
- Add a note about AI to CONTRIBUTING.md by @stefanhaller in #5404
- Update redo keybinding in README.md by @unikitty37 in #5387
- Fix grammar in the contributor guide by @Rohan5commit in #5392
I18n π
- Update translations from Crowdin by @stefanhaller in #5476
Performance Improvements π
- Improve performance of discarding many files by @stefanhaller in #5407
New Contributors
- @blakemckeany made their first contribution in #5365
- @discapes made their first contribution in #5386
- @unikitty37 made their first contribution in #5387
- @Rohan5commit made their first contribution in #5392
- @matthijskooijman made their first contribution in #5405
- @dagecko made their first contribution in #5439
- @mrt181 made their first contribution in #5364
Full Changelog: v0.60.0...v0.61.0
v0.60.0
What's Changed
Enhancements π₯
- Rename "Copy commit hash to clipboard" to mention it's an abbreviated hash by @stefanhaller in #5331
- Hide the "Fetching..." status of the auto-fetch when bottom line is hidden by @stefanhaller in #5321
- Allow removing lines from patch directly by @jesseduffield in #5277
- Filter file views rather than search by @jesseduffield in #5273
- Show branch name and detached HEAD in worktrees tab by @ruudk in #5339
- Add backward cycling support for log view (using
<shift>-aon status page) by @zaakiy in #5346 - Show worktree name next to branch in branches list by @ruudk in #5340
Fixes π§
- Fix matching of lazygit-edit URLs without line numbers by @danielwe in #5311
- Fix #5302: Create .git/info directory before writing exclude file by @cobyfrombrooklyn-bot in #5325
- Fix off-by-one error when calculating popup panel dimensions by @stefanhaller in #5312
- Properly disable clicks in inactive views behind popups by @stefanhaller in #5313
- Enable
{and}to change diff context size in branches and tags panels in diffing mode by @stefanhaller in #5258 - Fix diff display of custom pagers after screen mode change by @stefanhaller in #5349
Maintenance βοΈ
- Bump github.com/cloudflare/circl from 1.6.1 to 1.6.3 by @dependabot[bot] in #5323
Docs π
I18n π
- Update translations from Crowdin by @stefanhaller in #5352
Other Changes
New Contributors
- @Owen-sz made their first contribution in #5281
- @danielwe made their first contribution in #5311
- @cobyfrombrooklyn-bot made their first contribution in #5325
- @04cb made their first contribution in #5335
- @zaakiy made their first contribution in #5346
Full Changelog: v0.59.0...v0.60.0
v0.59.0
What's Changed
Enhancements π₯
- Have "Find base commit for fixup" ignore fixup commits for the found base commit by @stefanhaller in #5210
- Exclude commit trailers from line wrapping by @stefanhaller in #5230
- Limit popup panel widths to a maximum width by @stefanhaller in #5231
- Support using the selected commit's message in a fixup by @jesseduffield in #5233
- Fix gitignore path collisions by @DawidPietrykowski in #5245
Fixes π§
- Don't log the "git rev-list" call when marking bisect commits by @stefanhaller in #5236
- Fix opening a menu when a previous menu was scrolled down by @stefanhaller in #5238
- When moving commits up/down and the selection leaves the view, scroll to make it visible again by @stefanhaller in #5247
- Fix rendering of CRLF sequence ('\r\n') by @stefanhaller in #5237
- Fix rendering of the Reflog panel when using up/down to scroll it by @stefanhaller in #5248
- Add Nushell support for nvim-remote preset by @baiyeidk in #5250
Maintenance βοΈ
- Update devcontainer
VARIANTto1-trixieby @mricherzhagen in #5204 - chore: Update outdated GitHub Actions versions by @pgoslatara in #5220
- Disable the automatic, scheduled release by @stefanhaller in #5272
- Auto-update cheatsheets after updating translation by @stefanhaller in #5275
Docs π
- Update README to add GitArbor TUI as an alternative by @cadamsdev in #5257
- Update docs and schema for release by @stefanhaller in #5276
I18n π
- Update translations from Crowdin by @stefanhaller in #5274
New Contributors
- @pgoslatara made their first contribution in #5220
- @cadamsdev made their first contribution in #5257
- @baiyeidk made their first contribution in #5250
Full Changelog: v0.58.1...v0.59.0