Skip to content

Commit

Permalink
Make merge-recursive honor diff.renamelimit
Browse files Browse the repository at this point in the history
It might be a sign of source code management gone bad, but when two branches
has diverged almost beyond recognition and time has come for the branches to
merge, the user is going to need all the help his tool can give him. Honoring
diff.renamelimit has great potential as a painkiller in such situations.

The painkiller effect could have been achieved by e.g. 'merge.renamelimit',
but the flexibility gained by a separate option is questionable: our user
would probably expect git to detect renames equally good when merging as
when diffing (I known I did).

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Lars Hjemli authored and Junio C Hamano committed Oct 31, 2007
1 parent 04bd8e5 commit 07b45f8
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions merge-recursive.c
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ static struct path_list current_directory_set = {NULL, 0, 0, 1};

static int call_depth = 0;
static int verbosity = 2;
static int rename_limit = -1;
static int buffer_output = 1;
static struct output_buffer *output_list, *output_end;

Expand Down Expand Up @@ -372,6 +373,7 @@ static struct path_list *get_renames(struct tree *tree,
diff_setup(&opts);
opts.recursive = 1;
opts.detect_rename = DIFF_DETECT_RENAME;
opts.rename_limit = rename_limit;
opts.output_format = DIFF_FORMAT_NO_OUTPUT;
if (diff_setup_done(&opts) < 0)
die("diff setup failed");
Expand Down Expand Up @@ -1693,6 +1695,10 @@ static int merge_config(const char *var, const char *value)
verbosity = git_config_int(var, value);
return 0;
}
if (!strcasecmp(var, "diff.renamelimit")) {
rename_limit = git_config_int(var, value);
return 0;
}
return git_default_config(var, value);
}

Expand Down

0 comments on commit 07b45f8

Please sign in to comment.