summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-04-01 23:20:19 (GMT)
committerJunio C Hamano <gitster@pobox.com>2011-04-01 23:20:19 (GMT)
commit4584c94f0efb9c03b8e860622937d754076da3dc (patch)
tree7c92d916aa0181ca5694c79f234f942042c529d7 /builtin
parentb46c9fafcf5450196b003ba63d32bab6c479d23a (diff)
parent334f8cb22a085964f1ad7d6063c66767920b3332 (diff)
downloadgit-4584c94f0efb9c03b8e860622937d754076da3dc.zip
git-4584c94f0efb9c03b8e860622937d754076da3dc.tar.gz
git-4584c94f0efb9c03b8e860622937d754076da3dc.tar.bz2
Merge branch 'jc/maint-apply-report-offset' into maint
* jc/maint-apply-report-offset: apply -v: show offset count when patch did not apply exactly
Diffstat (limited to 'builtin')
-rw-r--r--builtin/apply.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/builtin/apply.c b/builtin/apply.c
index 04f56f8..36e1507 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -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;
@@ -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.
@@ -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;