Skip to content

Releases: jesseduffield/lazygit

v0.66.2

Choose a tag to compare

@stefanhaller stefanhaller released this 16 Oct 09:33
63ab89f

What's Changed

Enhancements πŸ”₯

  • Improve display and handling of deleted submodules and nested repos/worktrees by @stefanhaller in #6134

Fixes πŸ”§

Maintenance βš™οΈ

Performance Improvements πŸ“Š

Full Changelog: v0.66.1...v0.66.2

v0.66.1

Choose a tag to compare

@stefanhaller stefanhaller released this 11 Oct 09:26
b741725

A few bug fixes for regressions introduced with the last release, and also some for older bugs.

One visible change is that the narrow selection bar in the focused diff view is now shown on both sides of the view rather than just on the left. This should improve usability for users with very large monitors, especially when using a side-by-side diff renderer.

For the changes of the last big release, see v0.66.0.

The changes in detail

Enhancements πŸ”₯

  • Allow scrolling the diff view horizontally when gui.wrapLinesInDiffView is off by @stefanhaller in #6109
  • Show the diff view's narrow selection bar on the right edge too by @stefanhaller in #6105

Fixes πŸ”§

Full Changelog: v0.66.0...v0.66.1

v0.66.0

Choose a tag to compare

@stefanhaller stefanhaller released this 05 Oct 17:17
c5f7158

This is by far the biggest release since I took over maintainership from Jesse, and some of the changes deserve a bit more explanation than usual.

  • Staging hunks is now done directly from the main view.

    There used to be a separate staging panel that you had to enter if you wanted to stage individual diff hunks; it was limited to one file at a time, and showed the raw git diff rather than the configured diff renderer. This is gone; the main view now has a selection when you focus it, and you can act on the selected hunk or line directly there:

    • press space to stage a hunk or range of lines
    • navigate to the next/previous hunk with <right>/<left>, or the next/previous file with n/N
    • press e to jump to the editor on the selected line
    • press d to discard a hunk.

    Many other enhancements were added to this new interactive diff view:

    • alt-click a line to jump to that line in the diff view (this works even when a popup panel is showing above it, e.g. the commit message editor)
    • press <ctrl-g> to see a menu with all the files in the diff, to quickly jump to one of them
    • the files in the diffstat below the commit message are clickable hyperlinks that take you to the clicked file in the diff, like the <ctrl-g> menu does
    • when changing the diff context using {/}, or when toggling the "ignore whitespace" option (<ctrl-w), the scroll position is preserved

    If you use a custom diff renderer, all of this works with the renderer's output, as long as it supports the new OSC protocol that was introduced for this. Delta and Diff-so-fancy already do, so if you use one of these, be sure to update them to the latest version. There is support for difftastic too, but it hasn't been accepted upstream, so you'll have to build it yourself from this PR. If you use any other diff renderer, please file an issue so that we can add support for it.

  • Better support for stacked branches.

    • You can now push or force-push all branches of a stack at once, simply by pushing the topmost one. Lazygit will ask you if you want to push the others as well.
    • Same for pulling: if a branch stack was rebased by someone else, you can pull the topmost branch and lazygit will ask you if you want to pull the other branches in the stack too, without checking them out.
    • Branches of a stack are now listed in order in the branches panel. When rebasing a stack it is common for all branch tips to get the same committer date, in which case git sorts them alphabetically, which is confusing. We now have extra logic to preserve the stack order in this case.
    • Unrelated to stacks (but common to show up in that case): when a branch diverges from its upstream (you see ↓3↑5) it was impossible to tell whether that was because you rebased or rewrote the branch, in which case you want to force push, or because someone else rebased the branch, in which case you want to pull it. Lazygit can now distinguish these cases, and will show the ↓3↑5 in a dimmer yellow in the latter case. What's more, in this latter case you can "pull" the branch without checking it out by pressing f, like you already could for branches showing ↓7.
  • Dark and light themes.

    Lazygit now determines whether your terminal has a dark or light background, and can use different color themes for each; it can also switch between the two dynamically if your terminal does. You can also pass this information on to your diff renderer if you use one that needs it, by using the new {{colorScheme}} template variable in the renderer command.

  • Better rendering of the commit graph.

    Since the commit graph uses box drawing characters it could only be an approximation; some graph topologies can't be rendered faithfully this way. We now make use of branch drawing characters if the terminal supports them, which solves this problem and also looks better; see #6077 for details.

All changes in detail

Features ✨

  • Stage, unstage and discard changes directly from the focused main view by @stefanhaller in #6035

Enhancements πŸ”₯

Fixes πŸ”§

  • Fix the Commits panel's column widths when scrolling during interactive rebase or bisect by @stefanhaller in #6022
  • Keep the outer folder selected when a folder path in the files panel splits up by @stefanhaller in #6037
  • Avoid showing pull request icons with a delay on startup even though they are cached by @stefanhaller in #6049
  • Fix drawing git's diff stat after switching screen modes by @stefanhaller in #6087
  • Fix wrong main view content in rare edge case situations by @stefanhaller in #6089
  • Fix the rule below a pull request's header being rendered with the wrong width by @stefanhaller in #6091

Maintenance βš™οΈ

Docs πŸ“–

  • Change the demo gifs to videos and update them for the newly added features by @stefanhaller in #6073

I18n 🌎

Full Changelog: v0.65.1...v0.66.0

v0.65.1

Choose a tag to compare

@stefanhaller stefanhaller released this 13 Sep 05:46
17cb09f

What's Changed

Fixes πŸ”§

Maintenance βš™οΈ

Full Changelog: v0.65.0...v0.65.1

v0.65.0

Choose a tag to compare

@stefanhaller stefanhaller released this 05 Sep 15:12
c07f4d3

What's Changed

Enhancements πŸ”₯

Fixes πŸ”§

Maintenance βš™οΈ

Docs πŸ“–

I18n 🌎

Performance Improvements πŸ“Š

Full Changelog: v0.64.1...v0.65.0

v0.64.1

Choose a tag to compare

@stefanhaller stefanhaller released this 12 Aug 17:57
fbe2379

What's Changed

This fixes a few regressions that were introduced in the last release, and some long-standing bugs that I didn't see any reason to hold back until the next big one.

Fixes πŸ”§

Maintenance βš™οΈ

Full Changelog: v0.64.0...v0.64.1

v0.64.0

Choose a tag to compare

@stefanhaller stefanhaller released this 04 Aug 07:31
aee0e40

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 πŸ”₯

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 βš™οΈ

Docs πŸ“–

I18n 🌎

Performance Improvements πŸ“Š

  • Make scrolling down a very long diff with the scroll wheel much smoother by @stefanhaller in #5780

New Contributors

Full Changelog: v0.63.1...v0.64.0

v0.63.1

Choose a tag to compare

@stefanhaller stefanhaller released this 15 Jul 11:39
aafe610

Fixes for a few regressions introduced in the v0.63.0 release.

What's Changed

Fixes πŸ”§

Maintenance βš™οΈ

Full Changelog: v0.63.0...v0.63.1

v0.63.0

Choose a tag to compare

@stefanhaller stefanhaller released this 04 Jul 12:50
ce5a8b6

What's Changed

Enhancements πŸ”₯

Fixes πŸ”§

Maintenance βš™οΈ

I18n 🌎

Performance Improvements πŸ“Š

Full Changelog: v0.62.2...v0.63.0

v0.62.2

Choose a tag to compare

@stefanhaller stefanhaller released this 04 Jun 07:01
009c897

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 πŸ”§

Full Changelog: v0.62.1...v0.62.2