git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 5/5] merge-recursive: find-renames resets threshold

From
FAFelipe Gonçalves Assis <felipeg.assis@gmail.com>
Date
Feb 21, 2016, 22:59 UTC
Message-ID
<1456095545-20201-6-git-send-email-felipegassis@gmail.com>
In-Reply-To
<1456095545-20201-1-git-send-email-felipegassis@gmail.com>

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 <felipegassis@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
Previous: Felipe Gonçalves AssisNext: Junio C Hamano
Message 7 of 11 in “Tests and fixes for merge-recursive rename options”
  1. 0/5 Tests and fixes for merge-recursive rename optionsFelipe Gonçalves Assis, Feb 21, 2016
  2. 1/5 merge-strategies.txt: fix typoFelipe Gonçalves Assis, Feb 21, 2016
  3. 2/5 t3034: add rename threshold testsFelipe Gonçalves Assis, Feb 21, 2016
  4. Junio C HamanoFeb 22, 2016
  5. 3/5 t3034: test option to disable renamesFelipe Gonçalves Assis, Feb 21, 2016
  6. 4/5 t3034: test deprecated interfaceFelipe Gonçalves Assis, Feb 21, 2016
  7. 5/5 merge-recursive: find-renames resets thresholdFelipe Gonçalves Assis, Feb 21, 2016
  8. Junio C HamanoFeb 22, 2016
  9. Felipe Gonçalves AssisFeb 22, 2016
  10. Junio C HamanoFeb 22, 2016
  11. Felipe Gonçalves AssisFeb 22, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.