mirror of
https://github.com/git/git
synced 2024-08-27 19:49:21 +00:00
blame: require 0 context lines while finding moved lines with -M
The core part of git blame -M required 1 context line, but there is no rationale to be found in the code; it causes artifacts like discussed in the thread: <http://thread.gmane.org/gmane.comp.version-control.git/255289/>. <http://permalink.gmane.org/gmane.comp.version-control.git/295795> sheds some more light on the history of the previous choice. Signed-off-by: David Kastrup <dak@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
7777322816
commit
17a07e2ae2
|
@ -134,7 +134,7 @@ struct progress_info {
|
||||||
int blamed_lines;
|
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)
|
xdl_emit_hunk_consume_func_t hunk_func, void *cb_data)
|
||||||
{
|
{
|
||||||
xpparam_t xpp = {0};
|
xpparam_t xpp = {0};
|
||||||
|
@ -142,7 +142,6 @@ static int diff_hunks(mmfile_t *file_a, mmfile_t *file_b, long ctxlen,
|
||||||
xdemitcb_t ecb = {NULL};
|
xdemitcb_t ecb = {NULL};
|
||||||
|
|
||||||
xpp.flags = xdl_opts;
|
xpp.flags = xdl_opts;
|
||||||
xecfg.ctxlen = ctxlen;
|
|
||||||
xecfg.hunk_func = hunk_func;
|
xecfg.hunk_func = hunk_func;
|
||||||
ecb.priv = cb_data;
|
ecb.priv = cb_data;
|
||||||
return xdi_diff(file_a, file_b, &xpp, &xecfg, &ecb);
|
return xdi_diff(file_a, file_b, &xpp, &xecfg, &ecb);
|
||||||
|
@ -980,7 +979,7 @@ static void pass_blame_to_parent(struct scoreboard *sb,
|
||||||
fill_origin_blob(&sb->revs->diffopt, target, &file_o);
|
fill_origin_blob(&sb->revs->diffopt, target, &file_o);
|
||||||
num_get_patch++;
|
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)",
|
die("unable to generate diff (%s -> %s)",
|
||||||
oid_to_hex(&parent->commit->object.oid),
|
oid_to_hex(&parent->commit->object.oid),
|
||||||
oid_to_hex(&target->commit->object.oid));
|
oid_to_hex(&target->commit->object.oid));
|
||||||
|
@ -1129,7 +1128,7 @@ static void find_copy_in_blob(struct scoreboard *sb,
|
||||||
* file_p partially may match that image.
|
* file_p partially may match that image.
|
||||||
*/
|
*/
|
||||||
memset(split, 0, sizeof(struct blame_entry [3]));
|
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)",
|
die("unable to generate diff (%s)",
|
||||||
oid_to_hex(&parent->commit->object.oid));
|
oid_to_hex(&parent->commit->object.oid));
|
||||||
/* remainder, if any, all match the preimage */
|
/* remainder, if any, all match the preimage */
|
||||||
|
|
Loading…
Reference in a new issue