From f2b5e7af10a2d51ce300a958c32d26ec0cf6f678 Mon Sep 17 00:00:00 2001 From: Michael J Gruber Date: Wed, 16 Feb 2011 17:55:37 +0100 Subject: [PATCH 1/2] git-patch-id: test for "no newline" markers Currently, patch-id trips over our very own output that marks the absence of newline at EOF. Expose this in a test. Signed-off-by: Michael J Gruber Signed-off-by: Junio C Hamano --- t/t4204-patch-id.sh | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/t/t4204-patch-id.sh b/t/t4204-patch-id.sh index 68e2652814..db96064f67 100755 --- a/t/t4204-patch-id.sh +++ b/t/t4204-patch-id.sh @@ -63,4 +63,40 @@ test_expect_success 'patch-id supports git-format-patch MIME output' ' test_cmp patch-id_master patch-id_same ' +cat >nonl <<\EOF +diff --git i/a w/a +index e69de29..2e65efe 100644 +--- i/a ++++ w/a +@@ -0,0 +1 @@ ++a +\ No newline at end of file +diff --git i/b w/b +index e69de29..6178079 100644 +--- i/b ++++ w/b +@@ -0,0 +1 @@ ++b +EOF + +cat >withnl <<\EOF +diff --git i/a w/a +index e69de29..7898192 100644 +--- i/a ++++ w/a +@@ -0,0 +1 @@ ++a +diff --git i/b w/b +index e69de29..6178079 100644 +--- i/b ++++ w/b +@@ -0,0 +1 @@ ++b +EOF + +test_expect_failure 'patch-id handles no-nl-at-eof markers' ' + cat nonl | calc_patch_id nonl && + cat withnl | calc_patch_id withnl && + test_cmp patch-id_nonl patch-id_withnl +' test_done From 2485eab55cc0dcab34311ecd0ac52038aa9d9db4 Mon Sep 17 00:00:00 2001 From: Michael J Gruber Date: Thu, 17 Feb 2011 08:44:42 +0100 Subject: [PATCH 2/2] git-patch-id: do not trip over "no newline" markers Currently, patch-id trips over our very own diff extension for marking the absence of newline at EOF. Fix it. (Ignore it, it's whitespace.) Signed-off-by: Michael J Gruber Signed-off-by: Junio C Hamano --- builtin/patch-id.c | 2 ++ t/t4204-patch-id.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/builtin/patch-id.c b/builtin/patch-id.c index 512530022e..49a0472a9b 100644 --- a/builtin/patch-id.c +++ b/builtin/patch-id.c @@ -73,6 +73,8 @@ int get_one_patchid(unsigned char *next_sha1, git_SHA_CTX *ctx) p += 7; else if (!memcmp(line, "From ", 5)) p += 5; + else if (!memcmp(line, "\\ ", 2) && 12 < strlen(line)) + continue; if (!get_sha1_hex(p, next_sha1)) { found_next = 1; diff --git a/t/t4204-patch-id.sh b/t/t4204-patch-id.sh index db96064f67..d2c930de87 100755 --- a/t/t4204-patch-id.sh +++ b/t/t4204-patch-id.sh @@ -94,7 +94,7 @@ index e69de29..6178079 100644 +b EOF -test_expect_failure 'patch-id handles no-nl-at-eof markers' ' +test_expect_success 'patch-id handles no-nl-at-eof markers' ' cat nonl | calc_patch_id nonl && cat withnl | calc_patch_id withnl && test_cmp patch-id_nonl patch-id_withnl