Skip to content

Commit 7d763b9

Browse files
committed
Merge branch 'rs/add-patch-document-p-for-pager'
Show 'P'ipe command in "git add -p". * rs/add-patch-document-p-for-pager: add-patch: fully document option P
2 parents 78bf9ce + 301e20d commit 7d763b9

File tree

3 files changed

+26
-24
lines changed

3 files changed

+26
-24
lines changed

Documentation/git-add.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,7 @@ patch::
349349
s - split the current hunk into smaller hunks
350350
e - manually edit the current hunk
351351
p - print the current hunk
352+
P - print the current hunk using the pager
352353
? - print help
353354
+
354355
After deciding the fate for all hunks, if there is any hunk

add-patch.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1416,7 +1416,8 @@ N_("j - go to the next undecided hunk, roll over at the bottom\n"
14161416
"/ - search for a hunk matching the given regex\n"
14171417
"s - split the current hunk into smaller hunks\n"
14181418
"e - manually edit the current hunk\n"
1419-
"p - print the current hunk, 'P' to use the pager\n"
1419+
"p - print the current hunk\n"
1420+
"P - print the current hunk using the pager\n"
14201421
"? - print help\n");
14211422

14221423
static size_t dec_mod(size_t a, size_t m)
@@ -1547,7 +1548,7 @@ static int patch_update_file(struct add_p_state *s,
15471548
permitted |= ALLOW_EDIT;
15481549
strbuf_addstr(&s->buf, ",e");
15491550
}
1550-
strbuf_addstr(&s->buf, ",p");
1551+
strbuf_addstr(&s->buf, ",p,P");
15511552
}
15521553
if (file_diff->deleted)
15531554
prompt_mode_type = PROMPT_DELETION;

t/t3701-add-interactive.sh

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ test_expect_success 'unknown command' '
4848
git add -N command &&
4949
git diff command >expect &&
5050
cat >>expect <<-EOF &&
51-
(1/1) Stage addition [y,n,q,a,d,e,p,?]? Unknown command ${SQ}W${SQ} (use ${SQ}?${SQ} for help)
52-
(1/1) Stage addition [y,n,q,a,d,e,p,?]?$SP
51+
(1/1) Stage addition [y,n,q,a,d,e,p,P,?]? Unknown command ${SQ}W${SQ} (use ${SQ}?${SQ} for help)
52+
(1/1) Stage addition [y,n,q,a,d,e,p,P,?]?$SP
5353
EOF
5454
git add -p -- command <command >actual 2>&1 &&
5555
test_cmp expect actual
@@ -332,9 +332,9 @@ test_expect_success 'different prompts for mode change/deleted' '
332332
git -c core.filemode=true add -p >actual &&
333333
sed -n "s/^\(([0-9/]*) Stage .*?\).*/\1/p" actual >actual.filtered &&
334334
cat >expect <<-\EOF &&
335-
(1/1) Stage deletion [y,n,q,a,d,p,?]?
336-
(1/2) Stage mode change [y,n,q,a,d,k,K,j,J,g,/,p,?]?
337-
(2/2) Stage this hunk [y,n,q,a,d,K,J,g,/,e,p,?]?
335+
(1/1) Stage deletion [y,n,q,a,d,p,P,?]?
336+
(1/2) Stage mode change [y,n,q,a,d,k,K,j,J,g,/,p,P,?]?
337+
(2/2) Stage this hunk [y,n,q,a,d,K,J,g,/,e,p,P,?]?
338338
EOF
339339
test_cmp expect actual.filtered
340340
'
@@ -521,13 +521,13 @@ test_expect_success 'split hunk setup' '
521521
test_expect_success 'goto hunk 1 with "g 1"' '
522522
test_when_finished "git reset" &&
523523
tr _ " " >expect <<-EOF &&
524-
(2/2) Stage this hunk [y,n,q,a,d,K,J,g,/,e,p,?]? + 1: -1,2 +1,3 +15
524+
(2/2) Stage this hunk [y,n,q,a,d,K,J,g,/,e,p,P,?]? + 1: -1,2 +1,3 +15
525525
_ 2: -2,4 +3,8 +21
526526
go to which hunk? @@ -1,2 +1,3 @@
527527
_10
528528
+15
529529
_20
530-
(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,?]?_
530+
(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]?_
531531
EOF
532532
test_write_lines s y g 1 | git add -p >actual &&
533533
tail -n 7 <actual >actual.trimmed &&
@@ -540,7 +540,7 @@ test_expect_success 'goto hunk 1 with "g1"' '
540540
_10
541541
+15
542542
_20
543-
(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,?]?_
543+
(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]?_
544544
EOF
545545
test_write_lines s y g1 | git add -p >actual &&
546546
tail -n 4 <actual >actual.trimmed &&
@@ -550,11 +550,11 @@ test_expect_success 'goto hunk 1 with "g1"' '
550550
test_expect_success 'navigate to hunk via regex /pattern' '
551551
test_when_finished "git reset" &&
552552
tr _ " " >expect <<-EOF &&
553-
(2/2) Stage this hunk [y,n,q,a,d,K,J,g,/,e,p,?]? @@ -1,2 +1,3 @@
553+
(2/2) Stage this hunk [y,n,q,a,d,K,J,g,/,e,p,P,?]? @@ -1,2 +1,3 @@
554554
_10
555555
+15
556556
_20
557-
(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,?]?_
557+
(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]?_
558558
EOF
559559
test_write_lines s y /1,2 | git add -p >actual &&
560560
tail -n 5 <actual >actual.trimmed &&
@@ -567,7 +567,7 @@ test_expect_success 'navigate to hunk via regex / pattern' '
567567
_10
568568
+15
569569
_20
570-
(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,?]?_
570+
(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]?_
571571
EOF
572572
test_write_lines s y / 1,2 | git add -p >actual &&
573573
tail -n 4 <actual >actual.trimmed &&
@@ -579,11 +579,11 @@ test_expect_success 'print again the hunk' '
579579
tr _ " " >expect <<-EOF &&
580580
+15
581581
20
582-
(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,?]? @@ -1,2 +1,3 @@
582+
(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]? @@ -1,2 +1,3 @@
583583
10
584584
+15
585585
20
586-
(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,?]?_
586+
(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]?_
587587
EOF
588588
test_write_lines s y g 1 p | git add -p >actual &&
589589
tail -n 7 <actual >actual.trimmed &&
@@ -595,11 +595,11 @@ test_expect_success TTY 'print again the hunk (PAGER)' '
595595
cat >expect <<-EOF &&
596596
<GREEN>+<RESET><GREEN>15<RESET>
597597
20<RESET>
598-
<BOLD;BLUE>(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,?]? <RESET>PAGER <CYAN>@@ -1,2 +1,3 @@<RESET>
598+
<BOLD;BLUE>(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]? <RESET>PAGER <CYAN>@@ -1,2 +1,3 @@<RESET>
599599
PAGER 10<RESET>
600600
PAGER <GREEN>+<RESET><GREEN>15<RESET>
601601
PAGER 20<RESET>
602-
<BOLD;BLUE>(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,?]? <RESET>
602+
<BOLD;BLUE>(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]? <RESET>
603603
EOF
604604
test_write_lines s y g 1 P |
605605
(
@@ -796,21 +796,21 @@ test_expect_success 'colors can be overridden' '
796796
<BLUE>+<RESET><BLUE>new<RESET>
797797
<CYAN> more-context<RESET>
798798
<BLUE>+<RESET><BLUE>another-one<RESET>
799-
<YELLOW>(1/1) Stage this hunk [y,n,q,a,d,s,e,p,?]? <RESET><BOLD>Split into 2 hunks.<RESET>
799+
<YELLOW>(1/1) Stage this hunk [y,n,q,a,d,s,e,p,P,?]? <RESET><BOLD>Split into 2 hunks.<RESET>
800800
<MAGENTA>@@ -1,3 +1,3 @@<RESET>
801801
<CYAN> context<RESET>
802802
<BOLD>-old<RESET>
803803
<BLUE>+<RESET><BLUE>new<RESET>
804804
<CYAN> more-context<RESET>
805-
<YELLOW>(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,?]? <RESET><MAGENTA>@@ -3 +3,2 @@<RESET>
805+
<YELLOW>(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]? <RESET><MAGENTA>@@ -3 +3,2 @@<RESET>
806806
<CYAN> more-context<RESET>
807807
<BLUE>+<RESET><BLUE>another-one<RESET>
808-
<YELLOW>(2/2) Stage this hunk [y,n,q,a,d,K,J,g,/,e,p,?]? <RESET><MAGENTA>@@ -1,3 +1,3 @@<RESET>
808+
<YELLOW>(2/2) Stage this hunk [y,n,q,a,d,K,J,g,/,e,p,P,?]? <RESET><MAGENTA>@@ -1,3 +1,3 @@<RESET>
809809
<CYAN> context<RESET>
810810
<BOLD>-old<RESET>
811811
<BLUE>+new<RESET>
812812
<CYAN> more-context<RESET>
813-
<YELLOW>(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,?]? <RESET>
813+
<YELLOW>(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]? <RESET>
814814
EOF
815815
test_cmp expect actual
816816
'
@@ -1424,9 +1424,9 @@ test_expect_success 'invalid option s is rejected' '
14241424
test_write_lines j s q | git add -p >out &&
14251425
sed -ne "s/ @@.*//" -e "s/ \$//" -e "/^(/p" <out >actual &&
14261426
cat >expect <<-EOF &&
1427-
(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,s,e,p,?]?
1428-
(2/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,?]? Sorry, cannot split this hunk
1429-
(2/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,?]?
1427+
(1/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,s,e,p,P,?]?
1428+
(2/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]? Sorry, cannot split this hunk
1429+
(2/2) Stage this hunk [y,n,q,a,d,k,K,j,J,g,/,e,p,P,?]?
14301430
EOF
14311431
test_cmp expect actual
14321432
'

0 commit comments

Comments
 (0)