diff options
author | Edward Thomson <ethomson@github.com> | 2017-01-01 22:19:23 +0000 |
---|---|---|
committer | Edward Thomson <ethomson@github.com> | 2017-01-01 22:34:43 +0000 |
commit | 19ed4d0ca3fdd2f46e1391597aa2b70e4f330c6f (patch) | |
tree | 8d6c7e9202b2f0c9a0d0f7771fa1afe8fd224fa7 | |
parent | 805b90aac4a0bc4a388a28f0086ba8a7cf7e62dc (diff) | |
download | libgit2-19ed4d0ca3fdd2f46e1391597aa2b70e4f330c6f.tar.gz |
merge: set default rename threshold
When `GIT_MERGE_FIND_RENAMES` is set, provide a default for
`rename_threshold` when it is unset.
-rw-r--r-- | include/git2/merge.h | 3 | ||||
-rw-r--r-- | src/merge.c | 8 | ||||
-rw-r--r-- | tests/merge/trees/renames.c | 2 |
3 files changed, 8 insertions, 5 deletions
diff --git a/include/git2/merge.h b/include/git2/merge.h index c6f6cba6c..94ac8b5c5 100644 --- a/include/git2/merge.h +++ b/include/git2/merge.h @@ -290,7 +290,8 @@ typedef struct { } git_merge_options; #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 diff --git a/src/merge.c b/src/merge.c index 1142917bd..c75cab635 100644 --- a/src/merge.c +++ b/src/merge.c @@ -1713,15 +1713,15 @@ static int merge_normalize_opts( if ((error = git_repository_config__weakptr(&cfg, repo)) < 0) return error; - if (given != NULL) + if (given != NULL) { memcpy(opts, given, sizeof(git_merge_options)); - else { + } else { git_merge_options init = GIT_MERGE_OPTIONS_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; - } if (given && given->default_driver) { opts->default_driver = git__strdup(given->default_driver); diff --git a/tests/merge/trees/renames.c b/tests/merge/trees/renames.c index d7721c894..6f5c36b0a 100644 --- a/tests/merge/trees/renames.c +++ b/tests/merge/trees/renames.c @@ -242,6 +242,8 @@ void test_merge_trees_renames__no_rename_index(void) { 0100644, "b69fe837e4cecfd4c9a40cdca7c138468687df07", 3, "7-both-renamed.txt" }, }; + opts.flags &= ~GIT_MERGE_FIND_RENAMES; + cl_git_pass(merge_trees_from_branches(&index, repo, BRANCH_RENAME_OURS, BRANCH_RENAME_THEIRS, &opts)); |