Skip to content

Commit

Permalink
Merge branch 'jc/maint-apply-report-offset' into maint
Browse files Browse the repository at this point in the history
* jc/maint-apply-report-offset:
  apply -v: show offset count when patch did not apply exactly
  • Loading branch information
Junio C Hamano committed Apr 1, 2011
2 parents b46c9fa + 334f8cb commit 4584c94
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions builtin/apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -2437,7 +2437,8 @@ static void update_image(struct image *img,
}

static int apply_one_fragment(struct image *img, struct fragment *frag,
int inaccurate_eof, unsigned ws_rule)
int inaccurate_eof, unsigned ws_rule,
int nth_fragment)
{
int match_beginning, match_end;
const char *patch = frag->patch;
Expand Down Expand Up @@ -2643,6 +2644,15 @@ static int apply_one_fragment(struct image *img, struct fragment *frag,
apply = 0;
}

if (apply_verbosely && applied_pos != pos) {
int offset = applied_pos - pos;
if (apply_in_reverse)
offset = 0 - offset;
fprintf(stderr,
"Hunk #%d succeeded at %d (offset %d lines).\n",
nth_fragment, applied_pos + 1, offset);
}

/*
* Warn if it was necessary to reduce the number
* of context lines.
Expand Down Expand Up @@ -2790,12 +2800,14 @@ static int apply_fragments(struct image *img, struct patch *patch)
const char *name = patch->old_name ? patch->old_name : patch->new_name;
unsigned ws_rule = patch->ws_rule;
unsigned inaccurate_eof = patch->inaccurate_eof;
int nth = 0;

if (patch->is_binary)
return apply_binary(img, patch);

while (frag) {
if (apply_one_fragment(img, frag, inaccurate_eof, ws_rule)) {
nth++;
if (apply_one_fragment(img, frag, inaccurate_eof, ws_rule, nth)) {
error("patch failed: %s:%ld", name, frag->oldpos);
if (!apply_with_reject)
return -1;
Expand Down

0 comments on commit 4584c94

Please sign in to comment.