Code

Splitting a hunk that adds a line at the top fails in "add -p"
authorMatt Graham <mdg149@gmail.com>
Sat, 16 May 2009 03:10:19 +0000 (23:10 -0400)
committerJunio C Hamano <gitster@pobox.com>
Sun, 17 May 2009 01:52:03 +0000 (18:52 -0700)
Splitting a hunk into two in add -p doesn't work for a diff that adds a
new line at the top of the file with other add in the same hunk.

Signed-off-by: Matthew Graham <mdg149@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t3701-add-interactive.sh

index dfc65601aa2171bfc9321753a3d90db112d81f72..9999fcd4b6e4000f199131e9b62e9aae3d278db1 100755 (executable)
@@ -165,4 +165,36 @@ test_expect_success FILEMODE 'stage mode but not hunk' '
 
 # end of tests disabled when filemode is not usable
 
+# Write the patch file with a new line at the top and bottom
+cat >patch <<EOF
+index 180b47c..b6f2c08 100644
+--- a/file
++++ b/file
+@@ -1,2 +1,4 @@
++firstline
+ baseline
+ content
++lastline
+EOF
+# Expected output, similar to the patch but w/ diff at the top
+cat >expected <<EOF
+diff --git a/file b/file
+index b6f2c08..61b9053 100755
+--- a/file
++++ b/file
+@@ -1,2 +1,4 @@
++firstline
+ baseline
+ content
++lastline
+EOF
+# Test splitting the first patch, then adding both
+test_expect_failure 'add first line works' '
+       git commit -am "clear local changes" &&
+       git apply patch &&
+       (echo s; echo y; echo y) | git add -p file &&
+       git diff --cached > diff &&
+       test_cmp expected diff
+'
+
 test_done