Releases: jesseduffield/lazygit
v0.30
Changelog
Features:
- many more places where suggestions are shown as you type in a prompt. For example, when:
- searching for a file to check its history
- checking out a branch
- setting a remote branch to track
- entering a custom command
- added support for diff3 merge conflict style (thanks @Ryooooooga )
- files in the working tree can now be filtered by staged/unstaged with (thanks @Liberatys )
- gui language can now be set manually with gui.language config key (thanks @Dwarven )
- cherry picked commit colour is now customisable (thanks @samburville )
- you can now define multiple config files to merge into one another, allowing for light/dark theming without having to duplicate other configuration (thanks @mjarkk )
- in the staging panel you can now copy the selected lines to the clipboard (thanks @Hrily )
- jump-to-block keybindings (default 1-5) are now configurable (thanks @samburville )
Bug fixes:
- fixed panic when resolving merge conflicts (thanks @Ryooooooga)
- fixed issues opening files on windows (thanks @Ryooooooga)
- fixed bug where deleting unmerged branches caused issues when not in english (thanks @Ryooooooga)
- fixed crash when removing tracked files (thanks @Ryooooooga)
- better support for different encoding schemes
- patch files are now saved in temp directory to save space (thanks @Ryooooooga)
- fixed various crashes caused by improper quotation in git commands (thanks @Ryooooooga)
- fixed various issues with the commit message editor
- fixed issue where the main panel scrolled back to the top whenever lazygit refreshed
- fixed issue where pressing tab in a confirmation panel would spawn a random panel at the edge of the application
- fixed issue where commits panel would be empty on older git versions (thanks @Ryooooooga)
- As part of an initiative to let the git config drive of lazygit's behaviour, pull logic has been simplified so that now the git config's setting is honoured. Highly recommended: set
pull.rebase = interactive
andrebase.autoSquash = true
so that you can see the commits yet to be rebased when midway through pulling. Note that this means thegit.pull.mode
lazygit config has been removed - --follow-tags has been removed from
git push
, so if you still want that you'll need to set it in your git config withpull.followTags = true
Other Changes:
- file tree view is now shown by default. You can switch to flat view with the backtick key
- if you hide the command log panel from within lazygit, it will stay hidden when you open lazygit again. This spares you from having to hide it manually in your lazygit config.
- improved chinese translation (thanks @btwise and @black-desk )
- updates to polish translation (thanks @HTD )
- lots of new tests added for dealing with remotes (pushing, pulling, fetching, setting upstream, etc)
- fixed some misspellings (thanks @codesoap )
v0.29
Credits
@Ryooooooga @black-desk @mrgarelli @boehs @FoamScience @mjarkk @danielebra @waffleboot @Krismix1 @jesseduffield
Changelog
107503c 🎨 alternative syntax
31bcd63 🎨 observe the error, if there is one
ae2496c 🎨 prefer the long switch over the short one for easier reading
b80fafe 🎨 properly ignore the result
7ae106d 🎨 run formatter
22a6771 🎨 run go fmt against the file directly ftw
2ac33bb 🎨 split out platform-dependent logging for compile-time selection
533817b 🐛 should be TailLogs
2b4048e 🐛 shouldn't hammer the file continually, have a nap instead
3dc3174 🔥 remove erroneous user_config fields
35f1ccd ♻️ temporarily bypass ignore whitespace for diff view instead of turning the toggle off completely
1304805 ✨ always show whitespace in diffs when entering line-by-line staging
a9f04d3 ✨ facilitate toggling whitespace in the diff view with a hotkey (c-w by default)
16dcc8f ✨ implement feedback when toggling whitespace
aa9ef12 ✨ make log-watching work on windows
53ea7df 🚚 move only the platform-specific part of log tailing into platform-specific files
92cc6e8 🚚 move whitespace toggle out of quitting.go
eb10ddf ✅ add a test around ignoring whitespace
3f96537 ✅ update test to pass in default ignore-whitespace flag (false)
e8e4fa5 Add color functions to templates funcMaps
0c2d90a Add comment
9daa47f Add docs for menuFromCommand prompts
3802b56 Add error message if target branch not found with prompt
d65c018 Add integration test
f1ced55 Add option to format filter matches to menuFromCommand prompts
d18c8c8 Add prompt type: menuFromCommand
01e4467 Add test cases for pull mode
148bf2c Add test for GenerateMenuCandidates from Custom Commands
755cc9f Add tests
4fca89b Allow hex theme colors
77e9ee6 Apply suggestions from @mjarkk for menyFromCommands
0a63f70 Apply suggestions from code review
f70435a Better format error catching in menuFromCommand prompts
9a087d0 Change the way file statuses are loaded
b92ff3e Consider first match only in menuFromCommand prompt
f2645da Extract git service URL formatting to a separate method
b28569a Fix a format issue
f96674b Fix error when filename contains ->
bccf203 Fix menu item color
a553f7f Fix staged renamed file with unstaged changes displays incorrectly in Files view #1408
d073932 Fix stash submodule #1436
63cb304 Fix translations, make formatter happy
0c3132c Fix typo in random tip
b4e6850 Fix wrong ff-only configuration
0e6598a Implement pull request options menu
ea136e4 Improve code quality
a8ec044 Make menuFromCommand format menu items and their description
0aad68a Merge branch 'btwise-master'
83834a2 Merge pull request #1373 from danielebra/master
b363b75 Merge pull request #1387 from mjarkk/parse-emoji-2
1573a44 Merge pull request #1389 from mjarkk/parse-emoji-update-docs
c005b0d Merge pull request #1390 from FoamScience/menu_from_cmd
eec20b8 Merge pull request #1392 from mjarkk/parcally-fix-1385
9b57b73 Merge pull request #1395 from mjarkk/allow-hex-theme-colors
f4874bb Merge pull request #1396 from mjarkk/fix-1385
04e474a Merge pull request #1401 from jesseduffield/switch-text-color-library
de5133f Merge pull request #1402 from jesseduffield/ci-build-less-binaries
3c78ba7 Merge pull request #1409 from jesseduffield/jesse-switch-text-color-library
5d1a963 Merge pull request #1416 from FoamScience/feature_menuOptions
fd8cb6e Merge pull request #1419 from mrgarelli/1418_bug_tests_ForceSetColorLevel
a3a14e9 Merge pull request #1423 from FoamScience/feature/colorsInMenuFromCommand
2eeff12 Merge pull request #1432 from black-desk/moved-submodule
a2ee521 Merge pull request #1433 from black-desk/fix-space-in-filename
6c415d1 Merge pull request #1434 from Ryooooooga/feature/fix-quote-in-filename
617e8a0 Merge pull request #1437 from Ryooooooga/feature/fix-submodule-update
c878f34 Merge pull request #1438 from Ryooooooga/feature/rename-files-with-modification
f8db359 Merge pull request #1440 from Ryooooooga/feature/quote-git-C-path
906ec30 Minor changes to menuFromCommand prompts
58ddbae Minor refactor
d7865b3 Read pull mode from git configuration
c57a007 Read pull mode from gitconfig lazily
edfb0a2 Refactor code around handleCustomCommandKeybinding
d5ec0fd Remove doubled string formatting in pull request URL generation
a2f7fcd Remove unused constant
46e500d Revert "Read pull mode from git configuration"
dcd3b7c Show only labels in menuFromCommand prompts
7588d52 ShowTotal flag
3db40a7 Sperate gh action build step
b5d8849 Support match colors in labelFormat
entry in menuFromCommand prompts
7984808 Switch to github.com/gookit/color for terminal colors
40f10c3 Update config.md
b590397 Update docs
7d1b76a Update dutch.go
fb69bfd Update english.go
6e579dc Update localized Keybinding file
66d735a Update pkg/commands/files.go
1aa45b0 Update tests
0c13551 Use parent view for tab navigation
39c8577 Use static context
a13e919 add chinese for i18n
028cb2b add extra quoting for shell cmd string on linux
a3b820f add missing universal keybindings to doc
7b19c5a add parse github emoji to docs
e58376f add tests for TemplateFuncMapAddColors
0662733 add tests for color changes
f8f596d add tests for open file cmd on linux
bfc9881 added changes that should fail the ci on windows
3a0a9ec branches check for split parts length
d626bca color fixups
fc76b44 correctly show files with special chars in commit
3770090 fix checkout file command
488c43a fix crash when double quotes in filename #1433
d51b065 fix empty patch panel when spaces in filename
bb4fe26 fix moved submodule
b21ac99 fix submodule command escaping #1436
0740409 fix test
2b9df0e fix up cheatsheet
46c146a fixed test failing due to ForceSetColorLevel in pkg/gui/style/style_test.go
713fae3 format code
17770b9 go mod vendor
4969e9c gofmt
123d624 make import explicit
e798aa4 more color tests
0bc0e4a more efficient
b81bac3 more i18n
9fdf92b more refactoring
23285ea more resilient test
62393cf more treeish files
ce7cbe5 naming change
fc066d2 parse github emoji config option
550c0fd refactor
93bf691 refactoring
1183de1 revert changes from bfc9881
d1134da review fixes: PR URL refactoring, target branch selection prompt
117c0bd simplify code a bit
fb395bc support reverting merge commits
b7b3019 update cheatsheet
ec82f80 update keybindings
v0.28.2
Changelog
44f7fc6 Add global binding to open recent repos
472288c Add user config to change the sort order of tags
3258c24 Better english for Configuring File Editing
.
05a23f0 Discard value after END marker
e7c657f Docs for EditCommand.
60468d2 Edit command as user OS config option
e478c25 Handle alternate merge conflict format; add tests
fd38ad8 More generic merge conflict detection
6ccf58c README: deprecate Ubuntu PPA
94b52af Remove config, make default sort order descending
bc044c6 Remove origin prefix when creating local branch based from origin
cb78cf7 Simplify sorting of git tags by using git's functions
f92fcfb cd: remove ppa job
f91adf0 fix lbl scrolling
d502c43 fix tests
0df02da minor changes
f71b23b more explicit
90983aa not importing regexp
6d91661 prevent closure issue
258eedb refactor
v0.28.1
v0.28
lazygit 0.28 Release notes
Thanks to everybody who filled out the survey at:
- https://forms.gle/AdFEuLy2dikcmK4F7
It's still open so if you want to leave feedback about lazygit please click the link!
Okay what's new in this release?
Command Log Panel
Concerned that you have no idea what git commands lazygit is running under the hood? Even I was starting to wonder myself. Well now there's a command log panel which tells you exactly what's going on. Paradoxically, this makes lazygit a valuable resource for learning how to use git on the command line.
The panel is shrunk to a single row when your terminal pane is small enough so that you have some more space. If there's more room it will be a little larger. You can maximise it by clicking it or pressing '@' and switching to it. You can also hide it for the current session through the menu that comes up when you hit '@'.
If you want to hide it permanently you can add the following to your config (which you can edit by pressing 'o' while the status panel is focused):
gui:
showCommandLog: false
You can also change the default size of the panel (in its semi-enlarged form) like so:
gui:
commandLogSize: 10
Random Tip
Some responses to the above survey mentioned features that would be cool to add... which already existed! So we're seeing how we go with a random tip that is shown in the command log panel when lazygit is opened, providing general tips for using lazygit so that the user can get a little more familiar with the app. If you find this annoying, you can disable it like so:
gui:
showRandomTip: false
Admittedly if the random tip spans several lines and you only have a one-line-high command log, you're gonna need to scroll up. Not too sure how to get around that one.
Ask Question Button
If you're lost and want to ask a question, any question, you can now click the 'Ask Question' button at the bottom right of the app. It will take you to the discussions page of the lazygit repo.
File sorting
We now bubble tracked files to the top when in flat file mode again. So first you'll see files with merge conflicts, then tracked files, then untracked files.
Bug fixes
- when you open a panel for editing text, the cursor now appears at the end, not the start, of the text.
- when using an east-asian character encoding, the rendering of frames is no longer broken
v0.27.4
lazygit 0.27.1-0.27.4 Release notes
Version 0.27 was quite ambitious so a few bugs were introduced. Lesson learnt,
release features gradually! All the newly introduced bugs should now be fixed,
except for #1233 which looks to
be a limitation of the new rendering library, tcell.
You can also now open 'git mergetool' by pressing shift+M in the files panel or
merge panel.
Otherwise, these releases contained minor bug fixes and improvements.
lazygit 0.27 Release Notes
Holy Moly, this is a big one.
There are two big changes here:
- Tree view for the files panel
- New rendering library
File tree view
This is off by default, but can be configured via the 'gui.showFileTree' config
key and toggled from within lazygit with the backtick key (the one below tilde).
Hitting enter on directories will toggle whether they are collapsed. Most
keybindings that apply to files also apply to directories e.g. if you hit space
on a directory, it will stage that whole directory.
When not in tree-mode, the merge conflicts are now bubbled up to the top of the
list.
The tree view makes it much easier to deal with tonnes of files, because you can
easily collapse folders you don't care about to focus on the important changes.
It also reduces the amount of horizontal space used meaning there is less chance
of content being truncated by the frame of the panel.
New rendering library
We've switched from the termbox package to tcell, with the help of the contributors
of the awesome-gocui repo. This has many benefits:
- More support for various terminals
- 24 bit colour support (you can now drop the -24-bit-color=never arg if you're using delta)
- Support for more keybindings like... SHIFT-TAB! Which means you can now navigate
the side panels with tab and shift-tab. (Previously pressing shift+tab would
crash the program). - Better support for switching to subprocesses. Most of that benefit
Other stuff:
- No more flickering e.g. when staging a file or when contents are refreshed
- You can now scroll the main panel with your mouse or pgup/pgdown. Before, doing
so would move the cursor which was weird - You can now insert a newline to the commit message panel via alt-enter. I've
changed the default keybinding from to . Let me know if that makes
you angry - When you scroll the main view, it will now stop just shy of scrolling too far
- The gui no longer re-initialises when returning from a subprocess or switching
repos - By default, 'esc' no longer quits lazygit. Instead you'll need to use ctrl+c
or 'q'. We use escape for exiting various modes in lazygit (e.g. cherry-picking)
and it gets annoying when you accidentally hit esc one too many times and end
up quitting. It's still configurable though - Faster startup time
- Custom commands now run in your shell so you have more freedom to get freaky with it
Bug fixes:
- No more panicking when attemping to enter an unprintable key (thanks @fsmiamoto!)
- Rewording the topmost commit no longer commits staged files as well
- When returning from a submodule we retain the state of the parent repo so that
you land back where you were in the submodules tab - Fixed a bug in search where the cursor would get stuck if the result set shrunk
- Commands now retry if .git/index.lock exists
- Branches are no longer checked out when renamed
- Fixed issue with merge conflicts on windows where the wrong command was invoked
causing a panic
Code-stuff:
- Lots of refactoring of the code itself. I'm considering a much bigger refactor
but need to investigate whether the approach is a good idea - Added a TUI for running/recording integration tests so that that whole workflow
is easier - Added over 40 new integration tests, so bugs will be caught sooner. As always,
if you catch a bug, please raise an issue for it!
v0.27.3
v0.27.2
Changelog
f89c47b add test for building tree
44f1f22 close commit message panel after returning from subprocess
cab0aa4 fix crash at start
d5504fa potentially fix credentials issue
b03e227 revert no-flicker due to carriage return weirdness
273aba3 stricter CI
21049be support file tree mode on windows
v0.27.1
v0.27
(see above for release notes)