1
0
mirror of https://github.com/git/git.git synced 2024-11-18 03:23:54 +01:00

Merge branch 'jc/maint-apply-report-offset'

* jc/maint-apply-report-offset:
  apply -v: show offset count when patch did not apply exactly
This commit is contained in:
Junio C Hamano 2011-03-15 14:22:02 -07:00
commit 8506588107

@ -2437,7 +2437,8 @@ static void update_image(struct image *img,
} }
static int apply_one_fragment(struct image *img, struct fragment *frag, 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; int match_beginning, match_end;
const char *patch = frag->patch; const char *patch = frag->patch;
@ -2643,6 +2644,15 @@ static int apply_one_fragment(struct image *img, struct fragment *frag,
apply = 0; 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 * Warn if it was necessary to reduce the number
* of context lines. * of context lines.
@ -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; const char *name = patch->old_name ? patch->old_name : patch->new_name;
unsigned ws_rule = patch->ws_rule; unsigned ws_rule = patch->ws_rule;
unsigned inaccurate_eof = patch->inaccurate_eof; unsigned inaccurate_eof = patch->inaccurate_eof;
int nth = 0;
if (patch->is_binary) if (patch->is_binary)
return apply_binary(img, patch); return apply_binary(img, patch);
while (frag) { 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); error("patch failed: %s:%ld", name, frag->oldpos);
if (!apply_with_reject) if (!apply_with_reject)
return -1; return -1;