summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@github.com>2017-01-01 22:19:23 +0000
committerEdward Thomson <ethomson@github.com>2017-01-01 22:34:43 +0000
commit19ed4d0ca3fdd2f46e1391597aa2b70e4f330c6f (patch)
tree8d6c7e9202b2f0c9a0d0f7771fa1afe8fd224fa7
parent805b90aac4a0bc4a388a28f0086ba8a7cf7e62dc (diff)
downloadlibgit2-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.h3
-rw-r--r--src/merge.c8
-rw-r--r--tests/merge/trees/renames.c2
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));