Merge branch 'bc/maint-apply-check-no-patch' into maint

* bc/maint-apply-check-no-patch:
  builtin/apply.c: report error on failure to recognize input
  t/t4131-apply-fake-ancestor.sh: fix broken test
This commit is contained in:
Junio C Hamano 2011-12-21 11:42:45 -08:00
commit 406cc9b822
3 changed files with 25 additions and 6 deletions

View file

@ -3587,15 +3587,12 @@ static int write_out_one_reject(struct patch *patch)
return -1;
}
static int write_out_results(struct patch *list, int skipped_patch)
static int write_out_results(struct patch *list)
{
int phase;
int errs = 0;
struct patch *l;
if (!list && !skipped_patch)
return error("No changes");
for (phase = 0; phase < 2; phase++) {
l = list;
while (l) {
@ -3721,6 +3718,9 @@ static int apply_patch(int fd, const char *filename, int options)
offset += nr;
}
if (!list && !skipped_patch)
die("unrecognized input");
if (whitespace_error && (ws_error_action == die_on_ws_error))
apply = 0;
@ -3738,7 +3738,7 @@ static int apply_patch(int fd, const char *filename, int options)
!apply_with_reject)
exit(1);
if (apply && write_out_results(list, skipped_patch))
if (apply && write_out_results(list))
exit(1);
if (fake_ancestor)

View file

@ -11,7 +11,7 @@ test_expect_success 'setup' '
test_commit 1 &&
test_commit 2 &&
mkdir sub &&
test_commit 3 sub/3 &&
test_commit 3 sub/3.t &&
test_commit 4
'

19
t/t4136-apply-check.sh Executable file
View file

@ -0,0 +1,19 @@
#!/bin/sh
test_description='git apply should exit non-zero with unrecognized input.'
. ./test-lib.sh
test_expect_success 'setup' '
test_commit 1
'
test_expect_success 'apply --check exits non-zero with unrecognized input' '
test_must_fail git apply --check - <<-\EOF
I am not a patch
I look nothing like a patch
git apply must fail
EOF
'
test_done