Skip to content

Commit

Permalink
Merge branch 'bc/maint-apply-check-no-patch'
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
gitster committed Dec 14, 2011
2 parents 424f30a + cc64b31 commit b661a4b
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 6 deletions.
10 changes: 5 additions & 5 deletions builtin/apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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;

Expand All @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion t/t4131-apply-fake-ancestor.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
'

Expand Down
19 changes: 19 additions & 0 deletions t/t4136-apply-check.sh
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit b661a4b

Please sign in to comment.