-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
When pressing a
to stage all files, don't include untracked files when showing only tracked files
#4779
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
When pressing a
to stage all files, don't include untracked files when showing only tracked files
#4779
Conversation
When filtering to show only tracked files, pressing `a` would also stage untracked files, which is confusing and undesired.
…view Also, fix two other commands that stage all files under the hood: - when continuing a rebase after resolving conflicts, we auto-stage all files, but in this case we never want to include untracked files, regardless of the filter - likewise, pressing ctrl-f to find a base commit for fixup stages all files for convenience, but again, this should only stage files that are already tracked
Coverage summary from CodacySee diff coverage on Codacy
Coverage variation details
Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: Diff coverage details
Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: See your quality gate settings Change summary preferencesFootnotes
|
This works well for my most common usecase, ie when only tracked files are shown, so from my part I'm happy if this is merged for now. However, I'm wondering if a potential follow-up would make sense where this is further generalized to not just pass the flag saying if only tracked files or not should be included, but specifically be compatible with any filter status. Is it possible to pass the current files shown explicitly to what should be staged? For example, if I instead show only untracked files ( |
@AckslD That's a very good point. The same consideration applies to staging folders using space though, and we didn't do it there, either. Also, it's a bit unclear how this would be implemented. Git doesn't have a flag to stage only untracked files, so we'd have to list all currently visible files on the command line. You can think this further: if we do that, then we might as well do it always, regardless of the current filter setting. Simply list all files that are being displayed in the files panel, this should always do the expected thing. However, there are a few concerns about this approach:
Since it would be some work to get all this right, and since nobody ever asked for this behavior yet, I'd be inclined to leave it the way it is in this PR, and consider improving it only if somebody complains. |
Makes sense @stefanhaller, sounds good to me and thanks for elaborating! |
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [jesseduffield/lazygit](https://github.com/jesseduffield/lazygit) | minor | `v0.53.0` -> `v0.54.0` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>jesseduffield/lazygit (jesseduffield/lazygit)</summary> ### [`v0.54.0`](https://github.com/jesseduffield/lazygit/releases/tag/v0.54.0) [Compare Source](jesseduffield/lazygit@v0.53.0...v0.54.0) <!-- Release notes generated using configuration in .github/release.yml at v0.54.0 --> Again we don't have any major new features this time (unless you count the support for alt-backspace for deleting words in the commit message editor, which is one of my favorite additions), but lots of smaller quality-of-life improvements and bug fixes. The most notable one is probably the fix for the stale index.lock problem, which was a very long-standing bug that seemed to affect some users much more than others for some reason. #### What's Changed ##### Enhancements 🔥 - Add confirmation for hard reset by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4704 - Provide user config defaults for UI-changeable settings by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4717 - Improve mouse handling of suggestions panel by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4726 - Add new command "Checkout previous branch" by [@​kyu08](https://github.com/kyu08) in jesseduffield/lazygit#4728 - Add confirmation for nuking the working tree by [@​DawidPietrykowski](https://github.com/DawidPietrykowski) in jesseduffield/lazygit#4727 - Support Alt+Backspace for word deletion in text areas by [@​rtzll](https://github.com/rtzll) in jesseduffield/lazygit#4741 - Don't use hunk mode for added or deleted files even when useHunkModeInStagingView config is on by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4758 - Show \[0] keybinding in main view title by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4754 - Draw divergence from base branch right-aligned in branches view by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4785 - Enable hunk staging mode by default by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4780 ##### Fixes 🔧 - Fix scrolling hunk into view when selecting next hunk by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4709 - Fix stale main view content when entering/exiting filtering view by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4719 - Detect double-clicks properly by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4725 - Fix commit searching during rebase or in divergence from upstream view by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4730 - Fix amending commits whose commit message is empty by [@​aidancz](https://github.com/aidancz) in jesseduffield/lazygit#4732 - Several small fixes to filtering mode (by path or author) by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4749 - Show diff for renamed file when filtering by path by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4750 - Allow rewording or dropping commits in filtering mode by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4756 - Fix index out of bounds panic when repository has massive tags by [@​chojs23](https://github.com/chojs23) in jesseduffield/lazygit#4776 - When pressing `a` to stage all files, don't include untracked files when showing only tracked files by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4779 - Fix commit hash colors when filtering by path or aythor by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4789 - Improve temp dir handling by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4784 - Terminate git processes more gracefully to avoid the stale index.lock problem by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4782 ##### Maintenance ⚙️ - Raise sponsors MRs as a draft by [@​jesseduffield](https://github.com/jesseduffield) in jesseduffield/lazygit#4694 - Update the peter-evans/create-pull-request action to v7 by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4695 - Update release workflow by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4703 - Clean up the .gitignore file by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4706 - Remove unused code and texts by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4715 - Remove deprecated edit configs by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4716 - Bump minimum required git version to 2.32 by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4718 - Use a better way of pinning the version of golangci-lint by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4733 - Make the minimum required git version a placeholder in the error text by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4778 - refactor: use slices.Equal to simplify code by [@​jishudashu](https://github.com/jishudashu) in jesseduffield/lazygit#4764 ##### Docs 📖 - Fix broken markdown in auto-generated keybindings documentation by [@​KEY60228](https://github.com/KEY60228) in jesseduffield/lazygit#4690 - Remove the homebrew tap from the readme by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4705 ##### I18n 🌎 - Update translations from Crowdin by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4791 ##### Performance Improvements 📊 - Fix performance regression on startup in repos with many tags by [@​stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4777 #### New Contributors - [@​KEY60228](https://github.com/KEY60228) made their first contribution in jesseduffield/lazygit#4690 - [@​DawidPietrykowski](https://github.com/DawidPietrykowski) made their first contribution in jesseduffield/lazygit#4727 - [@​rtzll](https://github.com/rtzll) made their first contribution in jesseduffield/lazygit#4741 - [@​chojs23](https://github.com/chojs23) made their first contribution in jesseduffield/lazygit#4776 - [@​jishudashu](https://github.com/jishudashu) made their first contribution in jesseduffield/lazygit#4764 **Full Changelog**: jesseduffield/lazygit@v0.53.0...v0.54.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS40Ni43IiwidXBkYXRlZEluVmVyIjoiNDEuNDYuNyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
This is very similar to what we did for pressing space in #4386; we forgot that the "stage all" command has the same issue.
Also, fix two other commands that stage all files under the hood: