mirror of
https://github.com/git/git
synced 2024-08-28 20:20:07 +00:00
Merge branch 'jc/apply-reject-noop-hunk'
"git apply" cannot diagnose a patch corruption when the breakage is to mark the length of the hunk shorter than it really is on the hunk header line "@@ -l,k +m,n @@"; one special case it could is when the hunk becomes no-op (e.g. k == n == 2 for two-line context patch output), and it learned how to do so. * jc/apply-reject-noop-hunk: apply: reject a hunk that does not do anything
This commit is contained in:
commit
59c465d5c0
|
@ -1638,6 +1638,9 @@ static int parse_fragment(const char *line, unsigned long size,
|
|||
}
|
||||
if (oldlines || newlines)
|
||||
return -1;
|
||||
if (!deleted && !added)
|
||||
return -1;
|
||||
|
||||
fragment->leading = leading;
|
||||
fragment->trailing = trailing;
|
||||
|
||||
|
|
|
@ -16,4 +16,17 @@ test_expect_success 'apply --check exits non-zero with unrecognized input' '
|
|||
EOF
|
||||
'
|
||||
|
||||
test_expect_success 'apply exits non-zero with no-op patch' '
|
||||
cat >input <<-\EOF &&
|
||||
diff --get a/1 b/1
|
||||
index 6696ea4..606eddd 100644
|
||||
--- a/1
|
||||
+++ b/1
|
||||
@@ -1,1 +1,1 @@
|
||||
1
|
||||
EOF
|
||||
test_must_fail git apply --stat input &&
|
||||
test_must_fail git apply --check input
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Loading…
Reference in a new issue