git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/2] merge-recursive: option to disable renames
@ 2016-02-17  3:15 Felipe Gonçalves Assis
  2016-02-17  3:15 ` [PATCH v4 1/2] " Felipe Gonçalves Assis
  2016-02-17  3:15 ` [PATCH v4 2/2] merge-recursive: more consistent interface Felipe Gonçalves Assis
  0 siblings, 2 replies; 3+ messages in thread
From: Felipe Gonçalves Assis @ 2016-02-17  3:15 UTC (permalink / raw)
  To: git; +Cc: Johannes.Schindelin, gitster, sunshine,
	Felipe Gonçalves Assis

Incorporate documentation input from Eric Sunshine. Fix missing signoff.

The first part is unchanged.

No tests are included for now. This work is being done in parallel and should
be properly included in future proposals.

Felipe Gonçalves Assis (2):
  merge-recursive: option to disable renames
  merge-recursive: more consistent interface

 Documentation/merge-strategies.txt | 12 ++++++++++--
 merge-recursive.c                  | 12 +++++++++++-
 merge-recursive.h                  |  1 +
 3 files changed, 22 insertions(+), 3 deletions(-)

-- 
2.7.1.289.ga0c045c

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH v4 1/2] merge-recursive: option to disable renames
  2016-02-17  3:15 [PATCH v4 0/2] merge-recursive: option to disable renames Felipe Gonçalves Assis
@ 2016-02-17  3:15 ` Felipe Gonçalves Assis
  2016-02-17  3:15 ` [PATCH v4 2/2] merge-recursive: more consistent interface Felipe Gonçalves Assis
  1 sibling, 0 replies; 3+ messages in thread
From: Felipe Gonçalves Assis @ 2016-02-17  3:15 UTC (permalink / raw)
  To: git; +Cc: Johannes.Schindelin, gitster, sunshine,
	Felipe Gonçalves Assis

The recursive strategy turns on rename detection by default. Add a
strategy option to disable rename detection even for exact renames.

Signed-off-by: Felipe Gonçalves Assis <felipegassis@gmail.com>
---
 Documentation/merge-strategies.txt | 6 ++++++
 merge-recursive.c                  | 7 +++++++
 merge-recursive.h                  | 1 +
 3 files changed, 14 insertions(+)

diff --git a/Documentation/merge-strategies.txt b/Documentation/merge-strategies.txt
index 7bbd19b..1a5e197 100644
--- a/Documentation/merge-strategies.txt
+++ b/Documentation/merge-strategies.txt
@@ -81,8 +81,14 @@ no-renormalize;;
 	Disables the `renormalize` option.  This overrides the
 	`merge.renormalize` configuration variable.
 
+no-renames;;
+	Turn off rename detection.
+	See also linkgit:git-diff[1] `--no-renames`.
+
 rename-threshold=<n>;;
 	Controls the similarity threshold used for rename detection.
+	Re-enables rename detection if disabled by a preceding
+	`no-renames`.
 	See also linkgit:git-diff[1] `-M`.
 
 subtree[=<path>];;
diff --git a/merge-recursive.c b/merge-recursive.c
index 8eabde2..6dd0a11 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -482,6 +482,9 @@ static struct string_list *get_renames(struct merge_options *o,
 	struct diff_options opts;
 
 	renames = xcalloc(1, sizeof(struct string_list));
+	if (!o->detect_rename)
+		return renames;
+
 	diff_setup(&opts);
 	DIFF_OPT_SET(&opts, RECURSIVE);
 	DIFF_OPT_CLR(&opts, RENAME_EMPTY);
@@ -2039,6 +2042,7 @@ void init_merge_options(struct merge_options *o)
 	o->diff_rename_limit = -1;
 	o->merge_rename_limit = -1;
 	o->renormalize = 0;
+	o->detect_rename = 1;
 	merge_recursive_config(o);
 	if (getenv("GIT_MERGE_VERBOSITY"))
 		o->verbosity =
@@ -2088,9 +2092,12 @@ int parse_merge_opt(struct merge_options *o, const char *s)
 		o->renormalize = 1;
 	else if (!strcmp(s, "no-renormalize"))
 		o->renormalize = 0;
+	else if (!strcmp(s, "no-renames"))
+		o->detect_rename = 0;
 	else if (skip_prefix(s, "rename-threshold=", &arg)) {
 		if ((o->rename_score = parse_rename_score(&arg)) == -1 || *arg != 0)
 			return -1;
+		o->detect_rename = 1;
 	}
 	else
 		return -1;
diff --git a/merge-recursive.h b/merge-recursive.h
index 9e090a3..52f0201 100644
--- a/merge-recursive.h
+++ b/merge-recursive.h
@@ -17,6 +17,7 @@ struct merge_options {
 	unsigned renormalize : 1;
 	long xdl_opts;
 	int verbosity;
+	int detect_rename;
 	int diff_rename_limit;
 	int merge_rename_limit;
 	int rename_score;
-- 
2.7.1.289.ga0c045c

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH v4 2/2] merge-recursive: more consistent interface
  2016-02-17  3:15 [PATCH v4 0/2] merge-recursive: option to disable renames Felipe Gonçalves Assis
  2016-02-17  3:15 ` [PATCH v4 1/2] " Felipe Gonçalves Assis
@ 2016-02-17  3:15 ` Felipe Gonçalves Assis
  1 sibling, 0 replies; 3+ messages in thread
From: Felipe Gonçalves Assis @ 2016-02-17  3:15 UTC (permalink / raw)
  To: git; +Cc: Johannes.Schindelin, gitster, sunshine,
	Felipe Gonçalves Assis

Add strategy option find-renames, following git-diff interface. This
makes the option rename-threshold redundant.

Signed-off-by: Felipe Gonçalves Assis <felipegassis@gmail.com>
---
 Documentation/merge-strategies.txt | 10 ++++++----
 merge-recursive.c                  |  5 ++++-
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/Documentation/merge-strategies.txt b/Documentation/merge-strategies.txt
index 1a5e197..ff359b6 100644
--- a/Documentation/merge-strategies.txt
+++ b/Documentation/merge-strategies.txt
@@ -85,11 +85,13 @@ no-renames;;
 	Turn off rename detection.
 	See also linkgit:git-diff[1] `--no-renames`.
 
+find-renames[=<n>];;
+	Turn on rename detection, optionally setting the the similarity
+	threshold. This is the default.
+	See also linkgit:git-diff[1] `--find-renames`.
+
 rename-threshold=<n>;;
-	Controls the similarity threshold used for rename detection.
-	Re-enables rename detection if disabled by a preceding
-	`no-renames`.
-	See also linkgit:git-diff[1] `-M`.
+	Deprecated synonym for `find-renames=<n>`.
 
 subtree[=<path>];;
 	This option is a more advanced form of 'subtree' strategy, where
diff --git a/merge-recursive.c b/merge-recursive.c
index 6dd0a11..700febd 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -2094,7 +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 (skip_prefix(s, "rename-threshold=", &arg)) {
+	else if (!strcmp(s, "find-renames"))
+		o->detect_rename = 1;
+	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)
 			return -1;
 		o->detect_rename = 1;
-- 
2.7.1.289.ga0c045c

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-02-17  3:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-17  3:15 [PATCH v4 0/2] merge-recursive: option to disable renames Felipe Gonçalves Assis
2016-02-17  3:15 ` [PATCH v4 1/2] " Felipe Gonçalves Assis
2016-02-17  3:15 ` [PATCH v4 2/2] merge-recursive: more consistent interface Felipe Gonçalves Assis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).