git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [GSoC PATCH v6] add -p: show user's hunk decision when selecting hunks

From
Samuel Abraham <abrahamadekunle50@gmail.com>
Date
Jan 6, 2026, 22:02 UTC
Message-ID
<CADYq+fafH-cwc7Ego1fDdNRgSnrOeGzCz_vCqszajVYEx1FV-w@mail.gmail.com>
In-Reply-To
<54e48ac4-7151-4378-b95f-8f22279d6761@gmail.com>
On Tue, Jan 6, 2026 at 5:10 PM Phillip Wood <phillip.wood123@gmail.com> wrote:
>
> Hi Abraham
Hello Phillip,
Show 18 quoted lines
>
> On 06/01/2026 12:01, Abraham Samuel Adekunle wrote:
> > When a user is interactively deciding which hunks to use or skip for
> > staging, unstaging, stashing etc, there is no way to know the
> > decision previously chosen for a hunk when navigating through the
> > previous and next hunks using K/J respectively.
> >
> > Improve the UI to explicitly show if a user has previously decided to
> > use a hunk (by pressing 'y') or skip the hunk (by pressing 'n').
> > This will improve clarity and aid the navigation process for the
> > user.
>
> I like the idea of telling the user if the hunk is currently selected
> but say "(previous decision: use)" makes the prompt rather long (some of
> the prompts in the tests below are 80 characters long). I wonder if we
> can find a more compact notation. "(currently selected)" is a bit
> shorter and takes us under 80 characters but is still longer than I'd
> like - maybe someone reading this will have a better suggestion.

Thank you for the review So I previously used selected/deselected. But Junio was not okay with those choice of words because they did not clearly tell If the user selected to skip or or selected to use the hunk.

But how about

Stage this mode change (you chose: use) [y,n,q,a,d%s,?]? Stage this mode change (you chose: skip) [y,n,q,a,d%s,?]? Stage this deletion (you chose: use) [y,n,q,a,d%sm,?]?

or Stage this mode change (choice: use) [y,n,q,a,d%s,?]? Stage this mode change (choice: skip)[y,n,q,a,d%s,?]? Stage this deletion (choice: skip)" [y,n,q,a,d%sm,?]?

or Stage this mode change (use: yes) [y,n,q,a,d%s,?]? Stage this mode change (use: no) [y,n,q,a,d%s,?]? Stage this deletion (use: no) [y,n,q,a,d%sm,?]?

Though I feel the last one does not fully tell what is happening at a glance. I can wait for more suggestions from other members if these do not suffice.

Show 20 quoted lines
>
> > diff --git a/add-patch.c b/add-patch.c
> > index 173a53241e..a383ea7f45 100644
> > --- a/add-patch.c
> > +++ b/add-patch.c
> > @@ -42,10 +42,10 @@ static struct patch_mode patch_mode_add = {
> >       .apply_args = { "--cached", NULL },
> >       .apply_check_args = { "--cached", NULL },
> >       .prompt_mode = {
> > -             N_("Stage mode change [y,n,q,a,d%s,?]? "),
> > -             N_("Stage deletion [y,n,q,a,d%s,?]? "),
> > -             N_("Stage addition [y,n,q,a,d%s,?]? "),
> > -             N_("Stage this hunk [y,n,q,a,d%s,?]? ")
> > +             N_("Stage mode change%s[y,n,q,a,d%s,?]? "),
> > +             N_("Stage deletion%s[y,n,q,a,d%s,?]? "),
> > +             N_("Stage addition%s[y,n,q,a,d%s,?]? "),
> > +             N_("Stage this hunk%s[y,n,q,a,d%s,?]? ")
>
> I'd find these strings easier to read if we kept the space and just
> passed an empty string when the hunk is undecided.

Okay I understand. Thank you. I will do that

Show 8 quoted lines
>
> > @@ -1564,8 +1565,14 @@ static int patch_update_file(struct add_p_state *s,
> >                             (uintmax_t)(file_diff->hunk_nr
> >                                               ? file_diff->hunk_nr
> >                                               : 1));
> > +             if (file_diff->hunk_nr && hunk->use != UNDECIDED_HUNK) {
>
> Why do we need to check hunk_nr here?

Okay it is actually not necessary to check `hunk_nr` since `hunk` is set to `file_diff->head` if `file_diff->hunk_nr` is zero Thank you for the observation.

Abraham.
Previous: Junio C HamanoNext: Samuel Abraham
Message 20 of 25 in “add -p: show hunk selection state when selecting hunks”
  1. add -p: show hunk selection state when selecting hunksAbraham Samuel Adekunle, Nov 30, 2025
  2. Junio C HamanoNov 30, 2025
  3. Abraham Samuel AdekunleDec 1, 2025
  4. add -p: show user's hunk decision when selecting hunksAbraham Samuel Adekunle, Jan 1, 2026
  5. Junio C HamanoJan 1, 2026
  6. Samuel AbrahamJan 2, 2026
  7. add -p: show user's hunk decision when selecting hunksAbraham Samuel Adekunle, Jan 2, 2026
  8. Junio C HamanoJan 4, 2026
  9. Samuel AbrahamJan 4, 2026
  10. add -p: show user's hunk decision when selecting hunksAbraham Samuel Adekunle, Jan 4, 2026
  11. SZEDER GáborJan 5, 2026
  12. Samuel AbrahamJan 5, 2026
  13. add -p: show user's hunk decision when selecting hunksAbraham Samuel Adekunle, Jan 6, 2026
  14. Kristoffer HaugsbakkJan 6, 2026
  15. Samuel AbrahamJan 6, 2026
  16. add -p: show user's hunk decision when selecting hunksAbraham Samuel Adekunle, Jan 6, 2026
  17. Phillip WoodJan 6, 2026
  18. Ben KnobleJan 6, 2026
  19. Junio C HamanoJan 7, 2026
  20. Samuel AbrahamJan 6, 2026
  21. Samuel AbrahamJan 6, 2026
  22. Samuel AbrahamJan 7, 2026
  23. add -p: show user's hunk decision when selecting hunksAbraham Samuel Adekunle, Jan 8, 2026
  24. Junio C HamanoJan 11, 2026
  25. Samuel AbrahamJan 11, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.