Skip to content

Commit

Permalink
apply -v: show offset count when patch did not apply exactly
Browse files Browse the repository at this point in the history
When the line number the patch intended to touch does not match
the line in the version being patched, GNU patch reports that
it applied the hunk at a different line number, with how big an
offset.

Teach "git apply" to do the same under --verbose option.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Mar 6, 2011
1 parent 964498e commit 334f8cb
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 @@ -2432,7 +2432,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 @@ -2638,6 +2639,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 @@ -2785,12 +2795,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 334f8cb

Please sign in to comment.