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

6 messages from 2007-12-17 to 2007-12-18. Participants: Johannes Schindelin, Junio C Hamano.
Thread: https://gitlist.dev/t/11319

## Johannes Schindelin, 2007-12-17 12:21

Subject: [PATCH] Document diff.external and mergetool.<tool>.path
Message-ID: <Pine.LNX.4.64.0712171220540.9446@racer.site>
URL: https://gitlist.dev/e/Pine.LNX.4.64.0712171220540.9446%40racer.site
In-Reply-To: <E6DFE65BB5ADFE44BE13CCC976124447D5BB8D@fue-email2.ad.mc.com>

```

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

Noticed by Sebastian Schuberth.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 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

```

## Johannes Schindelin, 2007-12-17 13:42

Subject: [PATCH] Actually add config variable diff.external
Message-ID: <Pine.LNX.4.64.0712171341110.9446@racer.site>
URL: https://gitlist.dev/e/Pine.LNX.4.64.0712171341110.9446%40racer.site
In-Reply-To: <Pine.LNX.4.64.0712171220540.9446@racer.site>

```

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 <johannes.schindelin@gmx.de>
---

	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

```

## Junio C Hamano, 2007-12-18 00:13

Subject: Re: [PATCH] Document diff.external and mergetool.<tool>.path
Message-ID: <7vtzmg5072.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vtzmg5072.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <Pine.LNX.4.64.0712171220540.9446@racer.site>

```
Thanks.  Applied.

```

## Johannes Schindelin, 2007-12-18 00:47

Subject: Re: [PATCH] Document diff.external and mergetool.<tool>.path
Message-ID: <Pine.LNX.4.64.0712180047300.9446@racer.site>
URL: https://gitlist.dev/e/Pine.LNX.4.64.0712180047300.9446%40racer.site
In-Reply-To: <7vtzmg5072.fsf@gitster.siamese.dyndns.org>

```
Hi,

On Mon, 17 Dec 2007, Junio C Hamano wrote:

> Thanks.  Applied.

Dumb question: with, or without, the diff.external patch?

Ciao,
Dscho

```

## Junio C Hamano, 2007-12-18 00:52

Subject: Re: [PATCH] Document diff.external and mergetool.<tool>.path
Message-ID: <7vy7bs3jv2.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vy7bs3jv2.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <Pine.LNX.4.64.0712180047300.9446@racer.site>

```
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> On Mon, 17 Dec 2007, Junio C Hamano wrote:
>
>> Thanks.  Applied.
>
> Dumb question: with, or without, the diff.external patch?

Swapped the order to first make diff.external work and then document.

```

## Johannes Schindelin, 2007-12-18 01:00

Subject: Re: [PATCH] Document diff.external and mergetool.<tool>.path
Message-ID: <Pine.LNX.4.64.0712180100480.9446@racer.site>
URL: https://gitlist.dev/e/Pine.LNX.4.64.0712180100480.9446%40racer.site
In-Reply-To: <7vy7bs3jv2.fsf@gitster.siamese.dyndns.org>

```
Hi,

On Mon, 17 Dec 2007, Junio C Hamano wrote:

> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> > On Mon, 17 Dec 2007, Junio C Hamano wrote:
> >
> >> Thanks.  Applied.
> >
> > Dumb question: with, or without, the diff.external patch?
> 
> Swapped the order to first make diff.external work and then document.

Thank you very much!

Ciao,
Dscho

```
