Path to this page:
Subject: CVS commit: pkgsrc/devel/lazygit
From: pin
Date: 2023-08-06 19:31:58
Message id: 20230806173158.D924BFBDB@cvs.NetBSD.org
Log Message:
devel/lazygit: update to 0.40.0
v0.40.0
LAZYGIT FIVE YEAR ANNIVERSARY EDITION 🎉
Holy moly, has it really been 5 years since Lazygit's birth? Time flies when
you're having fun.
I've written a post celebrating the anniversary,
https://jesseduffield.com/Lazygit-5-Years-On/
As for this release, we've got some great features here.
- Worktrees
We now have a worktrees view so you can easily create worktrees and switch to
them and so on. I'm not a big worktrees user myself so please raise an issue if
you can think of places to improve the UX.
- Rebase --onto
Rebasing onto a marked base commit is a very useful feature that we've been
sorely lacking for a while
(demo coming soon)
- Auto-refresh on window focus
Auto-refresh on window activation is a complete game-changer. No more having to
manually press shift+R when you come back from your editor.
- Nuking the worktree
We also have a fun enhancement in this release: showing an explosion animation
when you nuke the working tree.
You'll also notice in the readme we've got some updated demo gifs to showoff
Lazygit's features. More of those to come.
What's Changed
Features ✨
- Add worktrees view by @jesseduffield (with help from @kadaan) in #2147
- Rebase onto branch from a marked base commit by @stefanhaller in #2835
- Auto-refresh on window activation by @stefanhaller in #2854
Enhancements 🔥
- Faster refresh by @jesseduffield in #2841
- feat: add os.copyToClipboardCmd to allow for a custom command #1055
by @redstreet in #2784
- Add bisect menu entry that lets you choose bisect terms
by @stefanhaller in #2838
- When bisecting, always mark the current commit as good/bad, not the selected
by @stefanhaller in #2837
- Visualize local branch heads in commits panel, 2nd approach
by @stefanhaller in #2775
- Allow force-tagging if tag exists by @stefanhaller in #2827
- Save IgnoreWhitespaceInDiffView in state.yml by @stefanhaller in #2830
- Show loader when rebasing by @KarlHeitmann in #2851
- Internationalise logging of commands by @KarlHeitmann in #2852
- Show visual explosion effect when nuking worktree by @jesseduffield in #2861
Fixes 🔧
- Fix issue where using null to un-map a keybinding was ignored
by @hatredholder in #2832
- Show error when trying to open patch menu with an empty patch
by @stefanhaller in #2829
- Fix merge status for update-ref command by @stefanhaller in #2845
- Stop worktrees view from stealing the window by @jesseduffield in #2863
- Fix confirmation view sizing by @jesseduffield in #2879
Maintenance ⚙️
- Standardise on using lo for slice functions by @jesseduffield in #2846
- Remove redundant secureexec package by @jesseduffield in #2847
- Add automated demo recordings by @jesseduffield in #2853
- Remove file watcher code by @jesseduffield in #2865
- Add more demos to the README by @jesseduffield in #2866
- Move features to top of readme by @jesseduffield in #2867
- Add more demos by @jesseduffield in #2874
Other Changes
- Create demo output dir if it doesn't already exist by @jesseduffield in #2857
v0.39.4
What's Changed
Enhancements 🔥
- Prompt for commit message when moving a custom patch to a new commit
by @stefanhaller in #2800
Fixes 🔧
- Support typing special characters like '[' on non-english keyboards
by @Calvin1602 in https://github.com//pull/2818
- Fix infinite wait on push/pull on windows by @jesseduffield in #2821
Docs 📖
- Add Gentoo installation documentation to README by @cova-fe in #2811
v0.39.3
Enhancements 🔥
- Include more commit authors in author suggestions by @jesseduffield in #2807
- Use fuzzy search when filtering a view by @jesseduffield in #2808
- Better tag creation UX by @jesseduffield in #2809
- Better word wrap by @jesseduffield in #2812
Fixes 🔧
- Fix crash caused by simultaneous read/write of scanner buffer
by @jesseduffield in #2813
v0.39.2
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
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 🔥
- Support filtering on some views with '/' by @jesseduffield in #2680
- Allow scrolling side views without changing selected item
by @stefanhaller in #2608
- Speed up Lazygit on windows by @jesseduffield in #2661
- Show commit hashes against branches (opt-in) by @jesseduffield in #2274
- Add config for nerd fonts version by @stefanhaller in #2731
- Show rebase todo entry for conflicted commit by @stefanhaller in #2682
- Don't keep commits that become empty during a rebase
by @stefanhaller in #2644
- Show menu instead of prompt when there are conflicts in a rebase or merge
by @stefanhaller in #2694
- Make "merged" take precedence over "unpushed" by \
@stefanhaller in #2628
- Add config for main branches by @stefanhaller in #2619
- Visualize the "ignore whitespace" config by @stefanhaller in #2641
- Support dynamically generated suggestions in custom commands prompt
by @jesseduffield in #2686
- Add suggestions presets to prompts in custom commands
by @jesseduffield in #2685
- Allow checking for merge conflicts after running a custom command
by @jesseduffield in #2773
- Use sentence case everywhere by @jesseduffield in #2672
- Our casing as all over the place so now we're using 'Sentence case' for
everything.
- More compact and flexible date format by @jesseduffield in #2676
- Add nvim and kakoune editor presets by @screendriver in #2591
- Add helix editor preset by @dvic in #2668
- Fetch from all remotes by default by @stefanhaller in #2692
- Better prompt for discarding old file changes by @stefanhaller in #2707
- Use remote upstreams of main branches to determine merged status of commits
by @stefanhaller in #2725
- Always show branch heads in diff pane by @stefanhaller in #2748
- Rely on .gitconfig for verbose commit messages by @scallaway in #2664
- Show all tags in commits panel by @stefanhaller in #2776
- Update gitlab merge request URL to match new routing by @mazharz in #2656
- Right-align key labels in menu by @jesseduffield in #2652
- Indicate reserved menu keybindings to reduce confusion
by @jesseduffield in #2651
Fixes 🔧
- Fix to show commitPrefixes in commit message with a new blank commit
by @longlhh90 in #2612
- Fix intermittent rebase continue prompt failure by @jesseduffield in #2629
- Fix bug where discarding merge conflict file failed
by @jesseduffield in #2662
- Better default text colour on light theme terminals
by @jesseduffield in #2696
- Fix rendering issues in commits view by @jesseduffield in #2700
- Fix interactive rebase with git 2.25.1 and earlier by @stefanhaller in #2747
- Fix crash when a background fetch prompts for credentials
by @stefanhaller in #2789
- fix kakoune binary name by @enricozb in #2708
- Fix focus issue when opening recent-repos menu at launch
by @jesseduffield in #2715
- Allow discarding changes only from local commits by @stefanhaller in #2712
- Honour configured comment char on interactive rebase
by @gustavopcassol in #2639
- Fix the title and text of the Discard Changes prompt
by @stefanhaller in #2706
- Fix broken git init prompt by @jesseduffield in #2771
- Fix potentially wrong help text in commit message panel
by @stefanhaller in #2777
- Fix incorrect focus in accordion mode by @jesseduffield in #2792
- Fix crash on empty menu by @jesseduffield in #2799
- Only apply right-alignment on first column of keybindings menu
by @jesseduffield in #2801
- Stop hiding underscores for VSCode by @jesseduffield in #2699
Maintenance ⚙️
- Run integration tests with all supported git versions
by @stefanhaller in #2754
- Add ability to update yaml path while preserving comments
by @jesseduffield in #2620
- Refactor for better encapsulation by @jesseduffield in #2519
- Add convenience builder for git commands by @jesseduffield in #2645
- Construct arg vector manually rather than parse string
by @jesseduffield in #2655
- Allow global logging when developing by @jesseduffield in #2671
- remove github.com/jesseduffield/yaml package by @Ryooooooga in #2508
- Update seconds ago function and add tests by @jesseduffield in #2695
- Support matchers on integers in integration tests by @jesseduffield in #2704
- Improve yaml_utils by @stefanhaller in #2718
- Fix typo 'EnteRefName' by @letavocado in #2750
- Track busy/idle state for integration tests by @jesseduffield in #2765
- Add test for cmd obj cloning by @jesseduffield in #2780
- Update release notes config and add CI check by @jesseduffield in #2797
- Add release config for generating release notes by @jesseduffield in #2793
- Remove Uffizzi by @jesseduffield in #2690
- Bump golang.org/x/net from 0.0.0-20220722155237-a158d28d115b to 0.7.0
by @dependabot in #2490
Docs 📖
- Add package statuses to readme by @jesseduffield in #2717
v0.39.0
- Only apply right-alignment on first column of keybindings menu (#2801)
v0.38.2
What's Changed
- update open docs by @jesseduffield in #2588
- Only use --empty=keep option with git versions that support it
by @stefanhaller in #2585
v0.38.1
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.
#2582 Make branch head markers in compact view opt-in (@stefanhaller)
v0.38.0
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
- #2390 Revamp commit message panel (we now have a separate summary and
description panel where 'enter' adds newlines in the description panel)
(@seand52)
- #2421 Allow creating tags on branches with the 'T' keybinding (@Ryooooooga)
- #2453 Allow rebasing to first commit (@stefanhaller)
- #2476 Add icons for Kotlin files (@pereBohigas)
- #2433 Lazy-load commits when viewed within a branch (@Ryooooooga)
- #2370 Allow interactively rebasing onto a branch (@AzraelSec)
- #2344 Allow customising panel border styling with gui.border (single/double/
rounded/hidden) (@yk-kd)
- #2485 Allow rewording the HEAD commit while rebasing (@stefanhaller)
- #2552 Better support for stacked branches via the rebase.updateRefs git
config (@stefanhaller)
- #2496 Omit custom commands from history when they start with a space
(@mark2185)
- #2558 Allow resetting author during rebase (@stefanhaller)
- #2523 Improve editor config (@stefanhaller)
- #2418 Allow copying remote branch name to clipboard (@mark2185)
Fixes/Minor Improvements
- #2471, #2507 Improve custom patch conflict handling (This is a big deal!
Custom patches are much nicer to work with now) (@stefanhaller)
- #2452 Fix super-slow fetching/pulling (@mark2185)
- #2497 Set scrollbar to correct size when loading large diffs (@stefanhaller)
- #2514 Better escape code parsing (@Ryooooooga)
- #2547 More robust TODO rewriting (@stefanhaller)
- #2342 Better support for GIT_SEQUENCE_EDITOR (@knutwalker)
- #2412 Help menu can no longer be accessed from within the suggestions panel
(@Ryooooooga)
- #2435 Fix return-alt1 keybinding (@Ryooooooga)
- #2429 Honour rebase.autoSquash git config (@stefanhaller)
- #2413 Whitespace can be ignored from more panels (@stefanhaller)
- #2551 When opening lazygit with an arg e.g. lazygit log, ensure panel is
properly focused (@stefanhaller)
- #2293 Discarding changes is less error prone (@mark2185)
- #2451 Allow beginning an 'edit' rebase from a merge commit (@stefanhaller)
- #2448 Colouring of commits in branch commits panel (aka sub-commits panel)
now lines up with the regular commits panel (@stefanhaller)
- #2444 Next stageable line is now correctly selected after staging a range of
lines (@stefanhaller)
- #2463 Better i18 support (@Ryooooooga)
- #2479 Better behaviour for the 'YOU ARE HERE' label when rebasing
(@stefanhaller)
- #2483 Support hex value for 'gui.selectedLineBgColor' config key
(@stefanhaller)
- #2486 Recognise when Lazygit is run from within WSL (@humblepenguinn)
- #2481 Fix accordion mode when building a custom patch (@stefanhaller)
- #2500 Fix issue where file named 'HEAD' caused issues (@Ryooooooga)
- #2501 Make arrow characters consistent (@jenskutilek)
- #2557 Added support for raising gitea PRs
- #2577 Editor preset added for Kakoune (@jbrains)
(Be sure to check out @jbrains' blog)
- #2495 Remove alternative confirmation and return keymappings (@mark2185)
- #2377 Refresh staging panel after committing from staging panel (@shinhs0506)
- #2521 Fix reflog text colour being too dark (@jesseduffield)
- #2539 Better support for custom git URLs when creating pull requests
(@axieax)
- #2544 Improved handling of renames in diffs (@scallaway)
- #2567 WSL support for copying to clipboard (@jesseduffield)
- #2555 Stop adding '--force-if-includes' to git push because sometimes people
don't want it (@Ryooooooga)
- #2548 Allow pushing a tag with the same name a a branch (@AKARSHITJOSHI)
Maintenance:
- #2437, #2465, #2462, #2458, #2455, #2450, #2449, #2466, #2470, #2475, #2477,
#2518 Migrate integration tests (@jesseduffield)
- #2432 removing dead code (@Ryooooooga)
- #2417 Disable ~/.gitconfig when running integration tests (@stefanhaller)
- #2447 Remove dead code (@stefanhaller)
- #2474 improve staging panel integration tests (@jesseduffield)
- #2478 Make integration test more robust (@stefanhaller)
- #2467 Remove erroneously added file (@jesseduffield)
- #2491 Improve documentation (@TylerBarnes)
- #2502 Update Ufizzi workflows (@ShrutiC-git)
- #2512 Appease golang-ci lint (@jesseduffield)
- #2513 Refactor patch handling (@jesseduffield)
- #2515 Fix deprecated rand.Seed (@stefanhaller)
- #2541 Make debugger config work when changing repos while debugging
(@stefanhaller)
- #2545 Ensure test list is up to date in CI (@stefanhaller)
- #2550 Fix flakey tests (@jesseduffield)
- #2578 Enforce lowercase filenames (@jesseduffield)
Files: