@@ -326,7 +326,9 @@ test_expect_success 'correct message when there is nothing to do' '
326326test_expect_success ' setup again' '
327327 git reset --hard &&
328328 test_chmod +x file &&
329- echo content >>file
329+ echo content >>file &&
330+ test_write_lines A B C D>file2 &&
331+ git add file2
330332'
331333
332334# Write the patch file with a new line at the top and bottom
@@ -341,13 +343,27 @@ test_expect_success 'setup patch' '
341343 content
342344 +lastline
343345 \ No newline at end of file
346+ diff --git a/file2 b/file2
347+ index 8422d40..35b930a 100644
348+ --- a/file2
349+ +++ b/file2
350+ @@ -1,4 +1,5 @@
351+ -A
352+ +Z
353+ B
354+ +Y
355+ C
356+ -D
357+ +X
344358 EOF
345359'
346360
347361# Expected output, diff is similar to the patch but w/ diff at the top
348362test_expect_success ' setup expected' '
349363 echo diff --git a/file b/file >expected &&
350- cat patch |sed "/^index/s/ 100644/ 100755/" >>expected &&
364+ sed -e "/^index 180b47c/s/ 100644/ 100755/" \
365+ -e /1,5/s//1,4/ \
366+ -e /Y/d patch >>expected &&
351367 cat >expected-output <<-\EOF
352368 --- a/file
353369 +++ b/file
@@ -366,16 +382,38 @@ test_expect_success 'setup expected' '
366382 content
367383 +lastline
368384 \ No newline at end of file
385+ --- a/file2
386+ +++ b/file2
387+ @@ -1,4 +1,5 @@
388+ -A
389+ +Z
390+ B
391+ +Y
392+ C
393+ -D
394+ +X
395+ @@ -1,2 +1,2 @@
396+ -A
397+ +Z
398+ B
399+ @@ -2,2 +2,3 @@
400+ B
401+ +Y
402+ C
403+ @@ -3,2 +4,2 @@
404+ C
405+ -D
406+ +X
369407 EOF
370408'
371409
372410# Test splitting the first patch, then adding both
373411test_expect_success ' add first line works' '
374412 git commit -am "clear local changes" &&
375413 git apply patch &&
376- printf "%s\n" s y y | git add -p file 2>error |
377- sed -n -e "s/^([1-2 ]\/[1-2 ]) Stage this hunk[^@]*\(@@ .*\)/\1/" \
378- -e "/^[-+@ \\\\]"/p >output &&
414+ test_write_lines s y y s y n y | git add -p 2>error >raw-output &&
415+ sed -n -e "s/^([1-9 ]\/[1-9 ]) Stage this hunk[^@]*\(@@ .*\)/\1/" \
416+ -e "/^[-+@ \\\\]"/p raw-output >output &&
379417 test_must_be_empty error &&
380418 git diff --cached >diff &&
381419 diff_cmp expected diff &&
0 commit comments