[PATCH] Document diff.external and mergetool.<tool>.path

Subsystems: documentation, the rest

DORMANTno replies

2 messages, 1 author, 2016-06-15 · open the first message on its own page

[PATCH] Document diff.external and mergetool.<tool>.path

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:43:59

There was no documentation for the config variables diff.external
and mergetool.<tool>.path.

Noticed by Sebastian Schuberth.

Signed-off-by: Johannes Schindelin <redacted>
---
 Documentation/config.txt |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/Documentation/config.txt b/Documentation/config.txt
index ce16fc7..8a0df57 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -448,6 +448,13 @@ diff.autorefreshindex::
 	affects only `git diff` Porcelain, and not lower level
 	`diff` commands, such as `git diff-files`.
 
+diff.external::
+	If this config variable is set, diff generation is not
+	performed using the internal diff machinery, but using the
+	given command.  Note: if you want to use an external diff
+	program only on a subset of your files, you might want to
+	use gitlink:gitattributes[5] instead.
+
 diff.renameLimit::
 	The number of files to consider when performing the copy/rename
 	detection; equivalent to the git diff option '-l'.
@@ -671,6 +678,10 @@ merge.<driver>.recursive::
 	performing an internal merge between common ancestors.
 	See gitlink:gitattributes[5] for details.
 
+mergetool.<tool>.path::
+	Override the path for the given tool.  This is useful in case
+	your tool is not in the PATH.
+
 pack.window::
 	The size of the window used by gitlink:git-pack-objects[1] when no
 	window size is given on the command line. Defaults to 10.
-- 
1.5.4.rc0.36.g7680

[PATCH] Actually add config variable diff.external

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:43:59

We had the diff.external variable in the documentation of the config
file since its conception, but failed to respect it.

Signed-off-by: Johannes Schindelin <redacted>
---

	On Mon, 17 Dec 2007, Johannes Schindelin wrote:

	> Subject: [PATCH] Document diff.external and mergetool.<tool>.path
	> 
	> There was no documentation for the config variables 
	> diff.external and mergetool.<tool>.path.

	Heh.  Missed that diff.external was actually never implemented...

	Also noticed by Sebastian.

 diff.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/diff.c b/diff.c
index 7d17754..a49c36a 100644
--- a/diff.c
+++ b/diff.c
@@ -20,6 +20,7 @@
 static int diff_detect_rename_default;
 static int diff_rename_limit_default = 100;
 static int diff_use_color_default;
+static const char *external_diff_cmd_cfg;
 int diff_auto_refresh_index = 1;
 
 static char diff_colors[][COLOR_MAXLEN] = {
@@ -163,6 +164,10 @@ int git_diff_ui_config(const char *var, const char *value)
 		diff_auto_refresh_index = git_config_bool(var, value);
 		return 0;
 	}
+	if (!strcmp(var, "diff.external")) {
+		external_diff_cmd_cfg = xstrdup(value);
+		return 0;
+	}
 	if (!prefixcmp(var, "diff.")) {
 		const char *ep = strrchr(var, '.');
 
@@ -209,6 +214,8 @@ static const char *external_diff(void)
 	if (done_preparing)
 		return external_diff_cmd;
 	external_diff_cmd = getenv("GIT_EXTERNAL_DIFF");
+	if (!external_diff_cmd)
+		external_diff_cmd = external_diff_cmd_cfg;
 	done_preparing = 1;
 	return external_diff_cmd;
 }
-- 
1.5.4.rc0.59.g1d10d
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help