{"thread":{"id":"41431","subject":"[PATCH v4 0/2] merge-recursive: option to disable renames","startedAt":"2016-02-17T03:15:24Z","lastAt":"2016-02-17T03:15:26Z","messageCount":3,"participants":["Felipe Gonçalves Assis"],"isPatch":true,"patchVersion":4,"patchTotal":2},"messages":[{"id":"278433","messageId":"1455678926-15105-1-git-send-email-felipegassis@gmail.com","threadId":"41431","inReplyTo":null,"subject":"[PATCH v4 0/2] merge-recursive: option to disable renames","fromName":"Felipe Gonçalves Assis","fromEmail":"felipeg.assis@gmail.com","sentAt":"2016-02-17T03:15:24Z","receivedAt":"2016-02-17T03:15:24Z","isPatch":true,"sender":{"key":"felipeg.assis@gmail.com","avatar":null},"body":"Incorporate documentation input from Eric Sunshine. Fix missing signoff.\n\nThe first part is unchanged.\n\nNo tests are included for now. This work is being done in parallel and should\nbe properly included in future proposals.\n\nFelipe Gonçalves Assis (2):\n  merge-recursive: option to disable renames\n  merge-recursive: more consistent interface\n\n Documentation/merge-strategies.txt | 12 ++++++++++--\n merge-recursive.c                  | 12 +++++++++++-\n merge-recursive.h                  |  1 +\n 3 files changed, 22 insertions(+), 3 deletions(-)\n\n-- \n2.7.1.289.ga0c045c\n"},{"id":"278434","messageId":"1455678926-15105-2-git-send-email-felipegassis@gmail.com","threadId":"41431","inReplyTo":"1455678926-15105-1-git-send-email-felipegassis@gmail.com","subject":"[PATCH v4 1/2] merge-recursive: option to disable renames","fromName":"Felipe Gonçalves Assis","fromEmail":"felipeg.assis@gmail.com","sentAt":"2016-02-17T03:15:25Z","receivedAt":"2016-02-17T03:15:25Z","isPatch":true,"sender":{"key":"felipeg.assis@gmail.com","avatar":null},"body":"The recursive strategy turns on rename detection by default. Add a\nstrategy option to disable rename detection even for exact renames.\n\nSigned-off-by: Felipe Gonçalves Assis <felipegassis@gmail.com>\n---\n Documentation/merge-strategies.txt | 6 ++++++\n merge-recursive.c                  | 7 +++++++\n merge-recursive.h                  | 1 +\n 3 files changed, 14 insertions(+)\n\ndiff --git a/Documentation/merge-strategies.txt b/Documentation/merge-strategies.txt\nindex 7bbd19b..1a5e197 100644\n--- a/Documentation/merge-strategies.txt\n+++ b/Documentation/merge-strategies.txt\n@@ -81,8 +81,14 @@ no-renormalize;;\n \tDisables the `renormalize` option.  This overrides the\n \t`merge.renormalize` configuration variable.\n \n+no-renames;;\n+\tTurn off rename detection.\n+\tSee also linkgit:git-diff[1] `--no-renames`.\n+\n rename-threshold=<n>;;\n \tControls the similarity threshold used for rename detection.\n+\tRe-enables rename detection if disabled by a preceding\n+\t`no-renames`.\n \tSee also linkgit:git-diff[1] `-M`.\n \n subtree[=<path>];;\ndiff --git a/merge-recursive.c b/merge-recursive.c\nindex 8eabde2..6dd0a11 100644\n--- a/merge-recursive.c\n+++ b/merge-recursive.c\n@@ -482,6 +482,9 @@ static struct string_list *get_renames(struct merge_options *o,\n \tstruct diff_options opts;\n \n \trenames = xcalloc(1, sizeof(struct string_list));\n+\tif (!o->detect_rename)\n+\t\treturn renames;\n+\n \tdiff_setup(&opts);\n \tDIFF_OPT_SET(&opts, RECURSIVE);\n \tDIFF_OPT_CLR(&opts, RENAME_EMPTY);\n@@ -2039,6 +2042,7 @@ void init_merge_options(struct merge_options *o)\n \to->diff_rename_limit = -1;\n \to->merge_rename_limit = -1;\n \to->renormalize = 0;\n+\to->detect_rename = 1;\n \tmerge_recursive_config(o);\n \tif (getenv(\"GIT_MERGE_VERBOSITY\"))\n \t\to->verbosity =\n@@ -2088,9 +2092,12 @@ int parse_merge_opt(struct merge_options *o, const char *s)\n \t\to->renormalize = 1;\n \telse if (!strcmp(s, \"no-renormalize\"))\n \t\to->renormalize = 0;\n+\telse if (!strcmp(s, \"no-renames\"))\n+\t\to->detect_rename = 0;\n \telse if (skip_prefix(s, \"rename-threshold=\", &arg)) {\n \t\tif ((o->rename_score = parse_rename_score(&arg)) == -1 || *arg != 0)\n \t\t\treturn -1;\n+\t\to->detect_rename = 1;\n \t}\n \telse\n \t\treturn -1;\ndiff --git a/merge-recursive.h b/merge-recursive.h\nindex 9e090a3..52f0201 100644\n--- a/merge-recursive.h\n+++ b/merge-recursive.h\n@@ -17,6 +17,7 @@ struct merge_options {\n \tunsigned renormalize : 1;\n \tlong xdl_opts;\n \tint verbosity;\n+\tint detect_rename;\n \tint diff_rename_limit;\n \tint merge_rename_limit;\n \tint rename_score;\n-- \n2.7.1.289.ga0c045c\n"},{"id":"278435","messageId":"1455678926-15105-3-git-send-email-felipegassis@gmail.com","threadId":"41431","inReplyTo":"1455678926-15105-1-git-send-email-felipegassis@gmail.com","subject":"[PATCH v4 2/2] merge-recursive: more consistent interface","fromName":"Felipe Gonçalves Assis","fromEmail":"felipeg.assis@gmail.com","sentAt":"2016-02-17T03:15:26Z","receivedAt":"2016-02-17T03:15:26Z","isPatch":true,"sender":{"key":"felipeg.assis@gmail.com","avatar":null},"body":"Add strategy option find-renames, following git-diff interface. This\nmakes the option rename-threshold redundant.\n\nSigned-off-by: Felipe Gonçalves Assis <felipegassis@gmail.com>\n---\n Documentation/merge-strategies.txt | 10 ++++++----\n merge-recursive.c                  |  5 ++++-\n 2 files changed, 10 insertions(+), 5 deletions(-)\n\ndiff --git a/Documentation/merge-strategies.txt b/Documentation/merge-strategies.txt\nindex 1a5e197..ff359b6 100644\n--- a/Documentation/merge-strategies.txt\n+++ b/Documentation/merge-strategies.txt\n@@ -85,11 +85,13 @@ no-renames;;\n \tTurn off rename detection.\n \tSee also linkgit:git-diff[1] `--no-renames`.\n \n+find-renames[=<n>];;\n+\tTurn on rename detection, optionally setting the the similarity\n+\tthreshold. This is the default.\n+\tSee also linkgit:git-diff[1] `--find-renames`.\n+\n rename-threshold=<n>;;\n-\tControls the similarity threshold used for rename detection.\n-\tRe-enables rename detection if disabled by a preceding\n-\t`no-renames`.\n-\tSee also linkgit:git-diff[1] `-M`.\n+\tDeprecated synonym for `find-renames=<n>`.\n \n subtree[=<path>];;\n \tThis option is a more advanced form of 'subtree' strategy, where\ndiff --git a/merge-recursive.c b/merge-recursive.c\nindex 6dd0a11..700febd 100644\n--- a/merge-recursive.c\n+++ b/merge-recursive.c\n@@ -2094,7 +2094,10 @@ int parse_merge_opt(struct merge_options *o, const char *s)\n \t\to->renormalize = 0;\n \telse if (!strcmp(s, \"no-renames\"))\n \t\to->detect_rename = 0;\n-\telse if (skip_prefix(s, \"rename-threshold=\", &arg)) {\n+\telse if (!strcmp(s, \"find-renames\"))\n+\t\to->detect_rename = 1;\n+\telse if (skip_prefix(s, \"find-renames=\", &arg) ||\n+\t         skip_prefix(s, \"rename-threshold=\", &arg)) {\n \t\tif ((o->rename_score = parse_rename_score(&arg)) == -1 || *arg != 0)\n \t\t\treturn -1;\n \t\to->detect_rename = 1;\n-- \n2.7.1.289.ga0c045c\n"}]}