Skip to content

Releases: jesseduffield/lazygit

v0.39.3

23 Jul 05:31
1b05ba2
Compare
Choose a tag to compare

What's Changed

Enhancements πŸ”₯

Fixes πŸ”§

Full Changelog: v0.39.2...v0.39.3

v0.39.2

21 Jul 23:27
Compare
Choose a tag to compare

This release fixes an issue on windows where the main view would stop rendering new content. This issue mostly affected users running git through a shim. Thanks to @AndrewSav for the investigation and fix #2806

v0.39.1

20 Jul 23:15
Compare
Choose a tag to compare

Full Changelog: v0.39.0...v0.39.1

What's Changed

There's lots of stuff in this release! Some favourites of mine include:

  • Filter functionality for branches (and some other list views) activated by '/'
  • Showing commit hashes against branches (opt-in with gui.showBranchCommitHash: true)
  • Various improvements to rebasing functionality
  • Nerd font 3 support

As you can see @stefanhaller is behind many of the improvements in this release so kudos to you Stefan! And thanks to all the contributors who made this release possible.

In the next release we're adding worktree support. It's a big feature so we want to get it right! If you use worktrees as part of your daily flow please respond to the poll (and even test out the draft PR) in the Worktree UX discussion

Enhancements πŸ”₯

Fixes πŸ”§

Maintenance βš™οΈ

Docs πŸ“–

I18n 🌎

New Contributors

If you contributed to this release but don't see your name here, let me know!

Full Changelog: https://github.com/jesseduffield/lazygit/compare...

Read more

v0.38.2

03 May 08:09
5149b24
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.38.1...v0.38.2

v0.38.1

02 May 09:07
Compare
Choose a tag to compare

What's Changed

In v0.38.0 we displayed branch markers in the compact commits view, but this caused some confusion as it wasn't very clear what the markers represented. We're going to revisit the UX for this before considering re-introducing it. If you would like to re-enable the feature, set gui.experimentalShowBranchHeads to true in the lazygit config. As the name suggests, this is experimental and we may change this config in the future.

Full Changelog: v0.38.0...v0.38.1

v0.38.0

01 May 12:37
c6c4346
Compare
Choose a tag to compare

v0.38

Most recent patch: v0.38.2

We've got lots of goodies in this release. Some notable improvements are a revamped commit message panel (@seand52), much better interactive rebase behaviour (@stefanhaller), and much less error-prone custom patch behaviour (also @stefanhaller).

As you can see, @mark2185 and @Ryooooooga continue their reign as top contributors, but we are now also joined by @stefanhaller who is behind many of the big improvements in this release. I'd also like to give a special shoutout to @seand52 who's behind the revamped commit message panel. And thank you to all the other contributors who contributed towards this release: @AKARSHITJOSHI, @axieax, @AzraelSec, @humblepenguinn, @jbrains, @jenskutilek, @knutwalker, @pereBohigas, @scallaway, @shinhs0506, @ShrutiC-git, @TylerBarnes, and @yk-kd.

As always if you're interested in contributing to Lazygit, don't hesitate to pick an issue and have a Go (pardon the pun), and if you'd like to support me please consider donating.

On a more boring note intended for current/future contributors, we've now fully migrated to a new integration test pattern which makes it much easier to test your changes and prevent regressions. We've also got a huge refactor PR (#2519) that's about to go in right after this release goes out, so if you have a PR open that now has conflicts, reach out to me (@jesseduffield) and I can help resolve them.

Breaking changes

  • 'x' no longer opens the menu, you'll need to use '?' or remap the keybinding. We did this so that we could use 'x' for destructive actions like nuking the working tree, as some people accidentally double-tapped 'D' and ... nuked their working tree)
  • You can no longer use 'y' or 'n' to respond to a confirmation popup. Instead you'll need to use 'enter' or 'esc'. This is again just freeing up keybindings for more uses.
  • We've changed how you configure your editor settings because it was a bit of a mess previously. See here for the new approach. You'll get deprecation warnings upon closing lazygit until adjusting your config, so that nobody gets mad when we remove support in a following release.

Features

Fixes/Minor Improvements

Maintenance:

Read more

v0.37.0

01 Feb 11:09
Compare
Choose a tag to compare

What's Changed

(Jesse: I need to go to sleep right now but I'll clean this changelog up when I get the chance!)

New Contributors

Full Changelog: v0.36.0...v0.37.0

v0.36.0

14 Nov 09:30
Compare
Choose a tag to compare

We've got a whole lot of stuff in this release: improvements to the editor, better custom commands support, snappier staging of files, a tonne of bug fixes, and lots more.

One particularly cool thing that we've added is Github codespaces support (in the repo, not within the Lazygit program itself), so if you've got your eye on an open issue and want to move things along, consider spinning up the lazygit codebase in a code_space_ and having a go at adding a feature / fixing a bug all from the comfort of your browser! See here for more info.

As you can see @Ryooooooga and @mark2185 continue to kick goals with a heap of features and bug fixes in this release, but we also have a whole host of new contributors too. If you want to get involved in contributing, you can peruse the issues board for issues with the good-first-issue label, or jump into the Fortress of Laziness, our new discord server

What's Changed

Features:

Editor stuff

Custom commands stuff

Other stuff

Bug fixes:

Docs:

Maintenance:

New Contributors

Read more

v0.35

20 Jul 09:34
Compare
Choose a tag to compare

Features

  • Nerd fonts now supported! (@Ryooooooga)
    image

  • Scrollbars! (non-interactive but cool nonetheless)

  • Diff hunks can now be edited directly (via a subprocess) (@Ryooooooga)

  • You can open lazygit to the panel that you care about e.g. run lazygit log to open lazygit to the commits panel. (@HiromasaNojima)

  • Most menus now have their own keybindings for each menu item, which should speed things up for power users.

  • You can now easily set/unset the upstream of a branch (@mark2185)

  • You can now select to stash exclusively unstaged/staged files (@mark2185)

  • Improved update flow (@moha-gh)

  • Fixed issue where we duplicated line breaks when parsing a commit message Don't duplicate line breaks when retrieving commit message (@moha-gh)

  • Some hard-to-reverse actions now have confirmation popups given it's easy to accidentally press the wrong key.

  • 'Gone' branches are now marked as such

  • More commit attributes can be copied with the 'y' key (@mark2185)

  • Custom commit author colours can now be specified with regular names (e.g. 'red') instead of only hex codes. (@Ryooooooga)

  • Commit author can now be set to another author or reset to the current git user (thanks @JensPfeifle)

  • Auto-refresh of files can be disabled with the git.autoRefresh config option (@moha-gh)

  • We now (again) honour push.default config value. In general we want to err on the side of having git commands do the same thing that would happen if you ran them directly from the terminal.

  • Files can now be opened from the merge conflicts panel (thanks @Ryooooooga)

  • You can now configure to always show the unstaged and staged changes panels, regardless of whether the selected file has both unstaged and staged changes. This can be done via gui.splitDiff: 'always' (@HiromasaNojima)

  • Commit time format can now be customised via the gui.timeFormat config key (@Ryooooooga)

  • We now record the current directory on switch instead of exit (@davdroman)

  • We now support Bitbucket server PRs (thanks @TheBlob42)

  • Bottom line (containing some keybindings help) can now be hidden via gui.showBottomLine: false in your config.

  • You can now show the whole git graph in the commits panel by default via git.log.showWholeGitGraph: true

  • Some UI tweaks.

Bug fixes

Translation updates:

Chinese translated updated (@Crystal-RainSlide)
Japanese translation added (@Ryooooooga)
Korean translation added (@Shin-JaeHeon)

HUGE thankyou to all the contributors who've helped bring about this release. As you can see @mark2185 and @Ryooooooga are behind many of the the changes so a special thankyou to the both of you!

Maintenance stuff:

We've now on go1.18 meaning we can use generics. The lo package is our main generics helper package. I've also rolled my own, called 'generics', but I'll probably end up just committing to using lo only.

Integration tests in CI are now run in parallel, and windows builds are now properly cached, so CI runs much faster and you'll sooner know if you've broken a test.

Note from maintainer:

I'm working on some tricky features like the ability to filter the contents of a list panel, some of which I've recorded on youtube. As part of that work I've had to make a detour to do some yak shaving and refactoring (which is happening in #2023)

I've also made a video showing how to add a basic feature to Lazygit for aspiring contributors. If you would like to see similar videos/docs covering other topics to make life easier for new/existing contributors, lemme know!

At some point I want to take time off work to go full-time on Lazygit (e.g. for a few months). If you have any ideas how I could raise money to do that, let me know! And of course for all those currently sponsoring, thankyou so much, it's a big motivator for me finding the time to work on this project.

Some more rambling thoughts:

  • The integration test suite has some good coverage but the mechanism behind it (recording a Lazygit session and having the test replay that session) is hard to maintain. I want to switch to having integration tests be built by calling a bunch of commands in sequence, similar to Cypress if anybody's used that.
  • I was holding off this release for the sake of a better in-app release notes feature but that can wait for a future release.

v0.34

17 Mar 07:11
Compare
Choose a tag to compare

Features:

  • You can now customise the colour of unstaged files via the gui.theme.unstagedChangesColor config key (thanks @snorrwe )
  • Editing a file will now open your editor at the currently selected line for most major editors (thanks @mark2185 )
  • Support for opening Azure DevOps repos (thanks @tiwood )
  • You can now skip the confirmation prompt after running a subprocess with the promptToReturnFromSubprocess config key (thanks @rambhosale )

Bug Fixes:

  • Fixed issue where mouse handling was not properly restored after leaving the application (thanks @tmatz )
  • Fixed bug where files could not be edited at particular lines for certain editors (thanks @fsmiamoto )

Other:

  • Some cleaning up of the docs (thanks @moha-gh )
  • NL translation fixups (thanks @Alpakash )
  • Fixed an issue with the cheatsheet generator that caused the user's own language to appear in each output translation file.

Note from maintainer:

  • I'm going to merge in quite a large refactor PR to the master branch. The refactor is about 90% done but the 10% might take some time and it's tricky to have to re-implement all PRs from contributors to the new branch. At any rate this refactor should make the code easier to work with compared to the previous god struct (the Gui struct) that was being used for everything. The new structure no doubt will have its own flaws that I'll need to work through over time. I've been using the refactor PR myself for a while and haven't run into any bugs, and I've added some more integration tests to capture more of the expected behaviour. Don't hesitate to raise an issue for any bug you find.