diff --git a/builtin/apply.c b/builtin/apply.c index 6696ea4c3ffd4f7af04f3f56609a78a74a0a0b55..606eddd5f6dcd6b3982f9acc6eb6f93eee235649 100644 --- a/builtin/apply.c +++ b/builtin/apply.c @@ -1639,6 +1639,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; diff --git a/t/t4136-apply-check.sh b/t/t4136-apply-check.sh index a321f7c245da531cb8fea495a5e7ba02b3a6463b..4b0a374b63f4128405c88fdb2410fb679bdd06a1 100755 --- a/t/t4136-apply-check.sh +++ b/t/t4136-apply-check.sh @@ -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