From: Junio C Hamano Date: Sun, 04 Jan 2026 06:03:09 GMT Subject: Re: [GSoC PATCH v3] add -p: show user's hunk decision when selecting hunks Message-ID: In-Reply-To: Abraham Samuel Adekunle writes: > 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 when and aid the navigation process for the > user. > > Reported-by: Junio C Hamano > Signed-off-by: Abraham Samuel Adekunle > --- > > Changes in v2: > -------------- > - Modified t3701-add-interactive.sh for conform to new changes Here is how "cd t && sh t3701-add-interactive.sh -i -v" ends for me. expecting success of 3701.50 'print again the hunk (PAGER)': test_when_finished "git reset" && cat >expect <<-EOF && +15 20 (1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]? PAGER @@ -1,2 +1,3 @@ PAGER 10 PAGER +15 PAGER 20 (1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]? EOF test_write_lines s y g 1 P | ( GIT_PAGER="sed s/^/PAGER\ /" && export GIT_PAGER && test_terminal git add -p >actual ) && tail -n 7 actual.trimmed && test_cmp expect actual.trimmed --- expect 2026-01-04 06:01:25.931220332 +0000 +++ actual.trimmed 2026-01-04 06:01:26.079845771 +0000 @@ -1,7 +1,7 @@ +15 20 -(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]? PAGER @@ -1,2 +1,3 @@ +(1/2) Stage this hunk (previous decision: use) [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]? PAGER @@ -1,2 +1,3 @@ PAGER 10 PAGER +15 PAGER 20 -(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]? +(1/2) Stage this hunk (previous decision: use) [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]? not ok 50 - print again the hunk (PAGER) # # test_when_finished "git reset" && # cat >expect <<-EOF && # +15 # 20 # (1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]? PAGER @@ -1,2 +1,3 @@ # PAGER 10 # PAGER +15 # PAGER 20 # (1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]? # EOF # test_write_lines s y g 1 P | # ( # GIT_PAGER="sed s/^/PAGER\ /" && # export GIT_PAGER && # test_terminal git add -p >actual # ) && # tail -n 7 actual.trimmed && # test_cmp expect actual.trimmed # 1..50