Commit 2854e619 by Carlos Martín Nieto Committed by GitHub

Merge pull request #4061 from libgit2/ethomson/merge_opts

merge: set default rename threshold
parents a6d833a2 07bb8078
...@@ -3,6 +3,10 @@ v0.25 + 1 ...@@ -3,6 +3,10 @@ v0.25 + 1
### Changes or improvements ### Changes or improvements
* `GIT_MERGE_OPTIONS_INIT` now includes a setting to perform rename detection.
This aligns this structure with the default by `git_merge` and
`git_merge_trees` when `NULL` was provided for the options.
### API additions ### API additions
### API removals ### API removals
......
...@@ -290,7 +290,8 @@ typedef struct { ...@@ -290,7 +290,8 @@ typedef struct {
} git_merge_options; } git_merge_options;
#define GIT_MERGE_OPTIONS_VERSION 1 #define GIT_MERGE_OPTIONS_VERSION 1
#define GIT_MERGE_OPTIONS_INIT {GIT_MERGE_OPTIONS_VERSION} #define GIT_MERGE_OPTIONS_INIT { \
GIT_MERGE_OPTIONS_VERSION, GIT_MERGE_FIND_RENAMES }
/** /**
* Initializes a `git_merge_options` with default values. Equivalent to * Initializes a `git_merge_options` with default values. Equivalent to
......
...@@ -1713,15 +1713,15 @@ static int merge_normalize_opts( ...@@ -1713,15 +1713,15 @@ static int merge_normalize_opts(
if ((error = git_repository_config__weakptr(&cfg, repo)) < 0) if ((error = git_repository_config__weakptr(&cfg, repo)) < 0)
return error; return error;
if (given != NULL) if (given != NULL) {
memcpy(opts, given, sizeof(git_merge_options)); memcpy(opts, given, sizeof(git_merge_options));
else { } else {
git_merge_options init = GIT_MERGE_OPTIONS_INIT; git_merge_options init = GIT_MERGE_OPTIONS_INIT;
memcpy(opts, &init, sizeof(init)); memcpy(opts, &init, sizeof(init));
}
opts->flags = GIT_MERGE_FIND_RENAMES; if ((opts->flags & GIT_MERGE_FIND_RENAMES) && !opts->rename_threshold)
opts->rename_threshold = GIT_MERGE_DEFAULT_RENAME_THRESHOLD; opts->rename_threshold = GIT_MERGE_DEFAULT_RENAME_THRESHOLD;
}
if (given && given->default_driver) { if (given && given->default_driver) {
opts->default_driver = git__strdup(given->default_driver); opts->default_driver = git__strdup(given->default_driver);
......
...@@ -242,6 +242,8 @@ void test_merge_trees_renames__no_rename_index(void) ...@@ -242,6 +242,8 @@ void test_merge_trees_renames__no_rename_index(void)
{ 0100644, "b69fe837e4cecfd4c9a40cdca7c138468687df07", 3, "7-both-renamed.txt" }, { 0100644, "b69fe837e4cecfd4c9a40cdca7c138468687df07", 3, "7-both-renamed.txt" },
}; };
opts.flags &= ~GIT_MERGE_FIND_RENAMES;
cl_git_pass(merge_trees_from_branches(&index, repo, cl_git_pass(merge_trees_from_branches(&index, repo,
BRANCH_RENAME_OURS, BRANCH_RENAME_THEIRS, BRANCH_RENAME_OURS, BRANCH_RENAME_THEIRS,
&opts)); &opts));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment