Re: [PATCH v2 2/3] config: Introduce diff.algorithm variable
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:55:45
Michal Privoznik [off-list ref] writes:
+static long parse_algorithm_value(const char *value)
+{
+ if (!value || !strcasecmp(value, "myers"))
+ return 0;[diff] algorithm should probably error out. Also it is rather unusual to parse the keyword values case insensitively.
quoted hunk ↗ jump to hunk
+ else if (!strcasecmp(value, "minimal")) + return XDF_NEED_MINIMAL; + else if (!strcasecmp(value, "patience")) + return XDF_PATIENCE_DIFF; + else if (!strcasecmp(value, "histogram")) + return XDF_HISTOGRAM_DIFF; + else + return -1; +} + /* * These are to give UI layer defaults. * The core-level commands such as git-diff-files should@@ -196,6 +211,13 @@ int git_diff_ui_config(const char *var, const char *value, void *cb) return 0; } + if (!strcmp(var, "diff.algorithm")) { + diff_algorithm = parse_algorithm_value(value); + if (diff_algorithm < 0) + return -1; + return 0; + } + if (git_color_config(var, value, cb) < 0) return -1;@@ -3213,6 +3235,7 @@ void diff_setup(struct diff_options *options) options->add_remove = diff_addremove; options->use_color = diff_use_color_default; options->detect_rename = diff_detect_rename_default; + options->xdl_opts |= diff_algorithm; if (diff_no_prefix) { options->a_prefix = options->b_prefix = "";