From: Junio C Hamano Date: Thu, 28 Jul 2016 18:26:01 +0000 (-0700) Subject: Merge branch 'dk/blame-move-no-reason-for-1-line-context' into maint X-Git-Tag: v2.9.3~49 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/c81d2836753a268be07346d362ffab3c6a5e14a9?ds=inline;hp=-c Merge branch 'dk/blame-move-no-reason-for-1-line-context' into maint "git blame -M" missed a single line that was moved within the file. * dk/blame-move-no-reason-for-1-line-context: blame: require 0 context lines while finding moved lines with -M --- c81d2836753a268be07346d362ffab3c6a5e14a9 diff --combined builtin/blame.c index 7417edf6ef,a3f6874732..9a035000b0 --- a/builtin/blame.c +++ b/builtin/blame.c @@@ -134,7 -134,7 +134,7 @@@ struct progress_info int blamed_lines; }; - static int diff_hunks(mmfile_t *file_a, mmfile_t *file_b, long ctxlen, + static int diff_hunks(mmfile_t *file_a, mmfile_t *file_b, xdl_emit_hunk_consume_func_t hunk_func, void *cb_data) { xpparam_t xpp = {0}; @@@ -142,7 -142,6 +142,6 @@@ xdemitcb_t ecb = {NULL}; xpp.flags = xdl_opts; - xecfg.ctxlen = ctxlen; xecfg.hunk_func = hunk_func; ecb.priv = cb_data; return xdi_diff(file_a, file_b, &xpp, &xecfg, &ecb); @@@ -980,7 -979,7 +979,7 @@@ static void pass_blame_to_parent(struc fill_origin_blob(&sb->revs->diffopt, target, &file_o); num_get_patch++; - if (diff_hunks(&file_p, &file_o, 0, blame_chunk_cb, &d)) + if (diff_hunks(&file_p, &file_o, blame_chunk_cb, &d)) die("unable to generate diff (%s -> %s)", oid_to_hex(&parent->commit->object.oid), oid_to_hex(&target->commit->object.oid)); @@@ -1129,7 -1128,7 +1128,7 @@@ static void find_copy_in_blob(struct sc * file_p partially may match that image. */ memset(split, 0, sizeof(struct blame_entry [3])); - if (diff_hunks(file_p, &file_o, 1, handle_split_cb, &d)) + if (diff_hunks(file_p, &file_o, handle_split_cb, &d)) die("unable to generate diff (%s)", oid_to_hex(&parent->commit->object.oid)); /* remainder, if any, all match the preimage */ @@@ -2425,7 -2424,8 +2424,7 @@@ static struct commit *find_single_final struct object *obj = revs->pending.objects[i].item; if (obj->flags & UNINTERESTING) continue; - while (obj->type == OBJ_TAG) - obj = deref_tag(obj, NULL, 0); + obj = deref_tag(obj, NULL, 0); if (obj->type != OBJ_COMMIT) die("Non commit %s?", revs->pending.objects[i].name); if (found) @@@ -2460,7 -2460,8 +2459,7 @@@ static char *prepare_initial(struct sco struct object *obj = revs->pending.objects[i].item; if (!(obj->flags & UNINTERESTING)) continue; - while (obj->type == OBJ_TAG) - obj = deref_tag(obj, NULL, 0); + obj = deref_tag(obj, NULL, 0); if (obj->type != OBJ_COMMIT) die("Non commit %s?", revs->pending.objects[i].name); if (sb->final)