Make the find-renames option follow the behaviour in git-diff, where it
resets the threshold when none is given. So, for instance,
"--find-renames=25 --find-renames" should result in the default
threshold (50%) instead of 25%.

Add corresponding test.

Signed-off-by: Felipe Gonçalves Assis <felipegas...@gmail.com>
---

Now bundles the relevant test.

 merge-recursive.c                         | 4 +++-
 t/t3034-merge-recursive-rename-options.sh | 6 ++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/merge-recursive.c b/merge-recursive.c
index 7bff5be..b880ae5 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -2094,8 +2094,10 @@ int parse_merge_opt(struct merge_options *o, const char 
*s)
                o->renormalize = 0;
        else if (!strcmp(s, "no-renames"))
                o->detect_rename = 0;
-       else if (!strcmp(s, "find-renames"))
+       else if (!strcmp(s, "find-renames")) {
                o->detect_rename = 1;
+               o->rename_score = 0;
+       }
        else if (skip_prefix(s, "find-renames=", &arg) ||
                 skip_prefix(s, "rename-threshold=", &arg)) {
                if ((o->rename_score = parse_rename_score(&arg)) == -1 || *arg 
!= 0)
diff --git a/t/t3034-merge-recursive-rename-options.sh 
b/t/t3034-merge-recursive-rename-options.sh
index d4f9742..54d5f1b 100755
--- a/t/t3034-merge-recursive-rename-options.sh
+++ b/t/t3034-merge-recursive-rename-options.sh
@@ -146,6 +146,12 @@ test_expect_success 'last wins in --find-renames=<m> 
--find-renames=<n>' '
        check_find_renames_75
 '
 
+test_expect_success '--find-renames resets threshold' '
+       git read-tree --reset -u HEAD &&
+       test_must_fail git merge-recursive --find-renames=25 --find-renames 
HEAD^ -- HEAD master &&
+       check_find_renames_50
+'
+
 test_expect_success 'last wins in --no-renames --find-renames' '
        git read-tree --reset -u HEAD &&
        test_must_fail git merge-recursive --no-renames --find-renames HEAD^ -- 
HEAD master &&
-- 
2.7.1.492.gd821b20

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to