Re: [RFC PATCH v2 0/6] Noobify format for status, add, restore
- From
- Dragan Simic <dsimic@manjaro.org>
- Date
- Oct 27, 2023, 13:32 UTC
- Message-ID
- <ca47d328c280e4b4c13bfa6dd9958a57@manjaro.org>
- In-Reply-To
- <20231026224615.675172-1-jacob@initialcommit.io>
On 2023-10-27 00:46, Jacob Stopak wrote:
Show 18 quoted lines
> Take into account reviewer feedback by doing several things > differently: > > * Rename this feature (for now) as "noob format mode" (or just "noob > mode") instead of the original "--table" verbiage. As pointed out, > this no longer ties the name of the setting to it's proposed > implementation detail as a table. Noob mode is not necessarily the > right name, just a placeholder for now. Unless people like it :D > > * Instead of manually having to invoke the -t, --table every time > this > format is to be used, set the config option "status.noob" to true. > Although this is logically tied to the status command, there are > many > commands that produce status output, (and this series adds more), > so > assume that if the user wants to see the status this way, that it > should be enabled whenever the status info is displayed.
How would "status.noob" relate to and coexist with possible future configuration options named "<command>.verbose", which would be somewhat similar to the currently existing "commit.verbose" option? IOW, perhaps it would be better to have per-command options "<command>.verbose = noob" or, even better, "<command>.verbose = extended", to make it all more future-proof and more granular.
Show 73 quoted lines
> * When running "git add" and "git restore" while noob mode is > enabled, > perform the add/restore function as usual, but display the table > formatted output with arrows showing how file changes moved around. > Displaying the output in this understandable format after each > command execution allows the noob to immediately see what they did. > Although this series only implements for status, add, and restore, > this output format would make sense in other commands like rm, mv, > commit, clean, and stash. > > * Works consistently with commands that already have a --dry-run > (-n) option. The dry run shows the exact same output, but > doesn't actually do the thing. > > * If `advice.statusHints` is true, add a table footer with status > hints. > Shorten these hints so that they are still clear but better fit > into a > table. Make the hint text yellow to distinguish them. The hints > only > appear when explicitly running "git status", which helps the user > answer the question "what can I do next?". Hints are omitted in > "impact" commands like add and restore. Having hints here distracts > from the file change moves being showed in the table by arrows. > > TODO: > > * "git status" outputs myriad other information depending on the > state > of the repo, like branch info, merge conflicts, rebase info, > bisect, > etc. Need to think about how to convey that info with the new > setting. > > * Some commands (like stash) might need more than 3 table columns to > display everything clearly. > > * For destructive commands, think about adding a prompt describing > the > effect, so the user can confirm before the action is taken. > > * Fix horrible things in the patch series code. > > * Probably other things. > > Play around with it! It's fun! > > Jacob Stopak (6): > status: add noob format from status.noob config > status: handle long paths in noob format > add: implement noob mode > add: set unique color for noob mode arrows > restore: implement noob mode > status: add advice status hints as table footer > > Makefile | 2 + > builtin/add.c | 47 +++++-- > builtin/checkout.c | 46 +++++-- > builtin/commit.c | 157 +---------------------- > commit.c | 2 + > noob.c | 198 +++++++++++++++++++++++++++++ > noob.h | 21 ++++ > read-cache-ll.h | 10 +- > read-cache.c | 41 +++++- > table.c | 301 +++++++++++++++++++++++++++++++++++++++++++++ > table.h | 6 + > wt-status.c | 75 +++++++---- > wt-status.h | 6 + > 13 files changed, 708 insertions(+), 204 deletions(-) > create mode 100644 noob.c > create mode 100644 noob.h > create mode 100644 table.c > create mode 100644 table.h