Autogenerated HTML docs for v1.4.4.1-gf0df
authorJunio C Hamano <junio@hera.kernel.org>
Tue, 28 Nov 2006 02:22:25 +0000 (02:22 +0000)
committerJunio C Hamano <junio@hera.kernel.org>
Tue, 28 Nov 2006 02:22:25 +0000 (02:22 +0000)
diff-format.txt
git-diff-files.html
git-diff-index.html
git-diff-stages.html
git-diff-tree.html
git.html
git.txt

index e4520e28e53661159454e02c703be772d43bbc09..883c1bb0a638d97278cdb66e288bc766a32626af 100644 (file)
@@ -65,62 +65,17 @@ Generating patches with -p
 
 When "git-diff-index", "git-diff-tree", or "git-diff-files" are run
 with a '-p' option, they do not produce the output described above;
-instead they produce a patch file.
+instead they produce a patch file.  You can customize the creation
+of such patches via the GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS
+environment variables.
 
-The patch generation can be customized at two levels.
-
-1. When the environment variable 'GIT_EXTERNAL_DIFF' is not set,
-   these commands internally invoke "diff" like this:
-
-      diff -L a/<path> -L b/<path> -pu <old> <new>
-+
-For added files, `/dev/null` is used for <old>.  For removed
-files, `/dev/null` is used for <new>
-+
-The "diff" formatting options can be customized via the
-environment variable 'GIT_DIFF_OPTS'.  For example, if you
-prefer context diff:
-
-      GIT_DIFF_OPTS=-c git-diff-index -p HEAD
-
-
-2. When the environment variable 'GIT_EXTERNAL_DIFF' is set, the
-   program named by it is called, instead of the diff invocation
-   described above.
-+
-For a path that is added, removed, or modified,
-'GIT_EXTERNAL_DIFF' is called with 7 parameters:
-
-     path old-file old-hex old-mode new-file new-hex new-mode
-+
-where:
-
-     <old|new>-file:: are files GIT_EXTERNAL_DIFF can use to read the
-                     contents of <old|new>,
-     <old|new>-hex:: are the 40-hexdigit SHA1 hashes,
-     <old|new>-mode:: are the octal representation of the file modes.
-
-+ 
-The file parameters can point at the user's working file
-(e.g. `new-file` in "git-diff-files"), `/dev/null` (e.g. `old-file`
-when a new file is added), or a temporary file (e.g. `old-file` in the
-index).  'GIT_EXTERNAL_DIFF' should not worry about unlinking the
-temporary file --- it is removed when 'GIT_EXTERNAL_DIFF' exits.
-
-For a path that is unmerged, 'GIT_EXTERNAL_DIFF' is called with 1
-parameter, <path>.
-
-
-git specific extension to diff format
--------------------------------------
-
-What -p option produces is slightly different from the
-traditional diff format.
+What the -p option produces is slightly different from the traditional
+diff format.
 
 1.   It is preceded with a "git diff" header, that looks like
      this:
 
-     diff --git a/file1 b/file2
+       diff --git a/file1 b/file2
 +
 The `a/` and `b/` filenames are the same unless rename/copy is
 involved.  Especially, even for a creation or a deletion,
index e00a44e658543815ef1df24cba05dd938f1513e8..8d724d79a3a30de8683f03872c3ad3bbe3984c21 100644 (file)
@@ -751,82 +751,11 @@ respectively.</p>
 <div class="sectionbody">\r
 <p>When "git-diff-index", "git-diff-tree", or "git-diff-files" are run\r
 with a <em>-p</em> option, they do not produce the output described above;\r
-instead they produce a patch file.</p>\r
-<p>The patch generation can be customized at two levels.</p>\r
-<ol>\r
-<li>\r
-<p>\r
-When the environment variable <em>GIT_EXTERNAL_DIFF</em> is not set,\r
-   these commands internally invoke "diff" like this:\r
-</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>diff -L a/&lt;path&gt; -L b/&lt;path&gt; -pu &lt;old&gt; &lt;new&gt;</tt></pre>\r
-</div></div>\r
-<p>For added files, <tt>/dev/null</tt> is used for &lt;old&gt;.  For removed\r
-files, <tt>/dev/null</tt> is used for &lt;new&gt;</p>\r
-<p>The "diff" formatting options can be customized via the\r
-environment variable <em>GIT_DIFF_OPTS</em>.  For example, if you\r
-prefer context diff:</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>GIT_DIFF_OPTS=-c git-diff-index -p HEAD</tt></pre>\r
-</div></div>\r
-</li>\r
-<li>\r
-<p>\r
-When the environment variable <em>GIT_EXTERNAL_DIFF</em> is set, the\r
-   program named by it is called, instead of the diff invocation\r
-   described above.\r
-</p>\r
-<p>For a path that is added, removed, or modified,\r
-<em>GIT_EXTERNAL_DIFF</em> is called with 7 parameters:</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>path old-file old-hex old-mode new-file new-hex new-mode</tt></pre>\r
-</div></div>\r
-<p>where:</p>\r
-<div class="hlist"><table>\r
-<tr>\r
-<td class="hlist1">\r
-&lt;old|new&gt;-file\r
-</td>\r
-<td class="hlist2">\r
-are files GIT_EXTERNAL_DIFF can use to read the\r
-                      contents of &lt;old|new&gt;,\r
-</td>\r
-</tr>\r
-<tr>\r
-<td class="hlist1">\r
-&lt;old|new&gt;-hex\r
-</td>\r
-<td class="hlist2">\r
-are the 40-hexdigit SHA1 hashes,\r
-</td>\r
-</tr>\r
-<tr>\r
-<td class="hlist1">\r
-&lt;old|new&gt;-mode\r
-</td>\r
-<td class="hlist2">\r
-are the octal representation of the file modes.\r
-</td>\r
-</tr>\r
-</table></div>\r
-<p>The file parameters can point at the user's working file\r
-(e.g. <tt>new-file</tt> in "git-diff-files"), <tt>/dev/null</tt> (e.g. <tt>old-file</tt>\r
-when a new file is added), or a temporary file (e.g. <tt>old-file</tt> in the\r
-index).  <em>GIT_EXTERNAL_DIFF</em> should not worry about unlinking the\r
-temporary file --- it is removed when <em>GIT_EXTERNAL_DIFF</em> exits.</p>\r
-</li>\r
-</ol>\r
-<p>For a path that is unmerged, <em>GIT_EXTERNAL_DIFF</em> is called with 1\r
-parameter, &lt;path&gt;.</p>\r
-</div>\r
-<h2>git specific extension to diff format</h2>\r
-<div class="sectionbody">\r
-<p>What -p option produces is slightly different from the\r
-traditional diff format.</p>\r
+instead they produce a patch file.  You can customize the creation\r
+of such patches via the GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS\r
+environment variables.</p>\r
+<p>What the -p option produces is slightly different from the traditional\r
+diff format.</p>\r
 <ol>\r
 <li>\r
 <p>\r
@@ -1009,7 +938,7 @@ two unresolved merge parents with the working tree file
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 27-Oct-2006 09:28:59 UTC\r
+Last updated 28-Nov-2006 02:22:11 UTC\r
 </div>\r
 </div>\r
 </body>\r
index b7581bbc0ce7dc0a3b157462fe0c6233c3a8eb91..8a39f877bc1a57d46dd1713d8ceb6a459b2204dd 100644 (file)
@@ -747,82 +747,11 @@ respectively.</p>
 <div class="sectionbody">\r
 <p>When "git-diff-index", "git-diff-tree", or "git-diff-files" are run\r
 with a <em>-p</em> option, they do not produce the output described above;\r
-instead they produce a patch file.</p>\r
-<p>The patch generation can be customized at two levels.</p>\r
-<ol>\r
-<li>\r
-<p>\r
-When the environment variable <em>GIT_EXTERNAL_DIFF</em> is not set,\r
-   these commands internally invoke "diff" like this:\r
-</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>diff -L a/&lt;path&gt; -L b/&lt;path&gt; -pu &lt;old&gt; &lt;new&gt;</tt></pre>\r
-</div></div>\r
-<p>For added files, <tt>/dev/null</tt> is used for &lt;old&gt;.  For removed\r
-files, <tt>/dev/null</tt> is used for &lt;new&gt;</p>\r
-<p>The "diff" formatting options can be customized via the\r
-environment variable <em>GIT_DIFF_OPTS</em>.  For example, if you\r
-prefer context diff:</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>GIT_DIFF_OPTS=-c git-diff-index -p HEAD</tt></pre>\r
-</div></div>\r
-</li>\r
-<li>\r
-<p>\r
-When the environment variable <em>GIT_EXTERNAL_DIFF</em> is set, the\r
-   program named by it is called, instead of the diff invocation\r
-   described above.\r
-</p>\r
-<p>For a path that is added, removed, or modified,\r
-<em>GIT_EXTERNAL_DIFF</em> is called with 7 parameters:</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>path old-file old-hex old-mode new-file new-hex new-mode</tt></pre>\r
-</div></div>\r
-<p>where:</p>\r
-<div class="hlist"><table>\r
-<tr>\r
-<td class="hlist1">\r
-&lt;old|new&gt;-file\r
-</td>\r
-<td class="hlist2">\r
-are files GIT_EXTERNAL_DIFF can use to read the\r
-                      contents of &lt;old|new&gt;,\r
-</td>\r
-</tr>\r
-<tr>\r
-<td class="hlist1">\r
-&lt;old|new&gt;-hex\r
-</td>\r
-<td class="hlist2">\r
-are the 40-hexdigit SHA1 hashes,\r
-</td>\r
-</tr>\r
-<tr>\r
-<td class="hlist1">\r
-&lt;old|new&gt;-mode\r
-</td>\r
-<td class="hlist2">\r
-are the octal representation of the file modes.\r
-</td>\r
-</tr>\r
-</table></div>\r
-<p>The file parameters can point at the user's working file\r
-(e.g. <tt>new-file</tt> in "git-diff-files"), <tt>/dev/null</tt> (e.g. <tt>old-file</tt>\r
-when a new file is added), or a temporary file (e.g. <tt>old-file</tt> in the\r
-index).  <em>GIT_EXTERNAL_DIFF</em> should not worry about unlinking the\r
-temporary file --- it is removed when <em>GIT_EXTERNAL_DIFF</em> exits.</p>\r
-</li>\r
-</ol>\r
-<p>For a path that is unmerged, <em>GIT_EXTERNAL_DIFF</em> is called with 1\r
-parameter, &lt;path&gt;.</p>\r
-</div>\r
-<h2>git specific extension to diff format</h2>\r
-<div class="sectionbody">\r
-<p>What -p option produces is slightly different from the\r
-traditional diff format.</p>\r
+instead they produce a patch file.  You can customize the creation\r
+of such patches via the GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS\r
+environment variables.</p>\r
+<p>What the -p option produces is slightly different from the traditional\r
+diff format.</p>\r
 <ol>\r
 <li>\r
 <p>\r
@@ -1099,7 +1028,7 @@ always have the special all-zero sha1.</td>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 03-Nov-2006 02:39:57 UTC\r
+Last updated 28-Nov-2006 02:22:12 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 0bf670f8505f70ac6e81e21c614aa0ce96120b69..8ecb54099952ac7452420584984c214cbef6a94e 100644 (file)
@@ -725,82 +725,11 @@ respectively.</p>
 <div class="sectionbody">\r
 <p>When "git-diff-index", "git-diff-tree", or "git-diff-files" are run\r
 with a <em>-p</em> option, they do not produce the output described above;\r
-instead they produce a patch file.</p>\r
-<p>The patch generation can be customized at two levels.</p>\r
-<ol>\r
-<li>\r
-<p>\r
-When the environment variable <em>GIT_EXTERNAL_DIFF</em> is not set,\r
-   these commands internally invoke "diff" like this:\r
-</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>diff -L a/&lt;path&gt; -L b/&lt;path&gt; -pu &lt;old&gt; &lt;new&gt;</tt></pre>\r
-</div></div>\r
-<p>For added files, <tt>/dev/null</tt> is used for &lt;old&gt;.  For removed\r
-files, <tt>/dev/null</tt> is used for &lt;new&gt;</p>\r
-<p>The "diff" formatting options can be customized via the\r
-environment variable <em>GIT_DIFF_OPTS</em>.  For example, if you\r
-prefer context diff:</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>GIT_DIFF_OPTS=-c git-diff-index -p HEAD</tt></pre>\r
-</div></div>\r
-</li>\r
-<li>\r
-<p>\r
-When the environment variable <em>GIT_EXTERNAL_DIFF</em> is set, the\r
-   program named by it is called, instead of the diff invocation\r
-   described above.\r
-</p>\r
-<p>For a path that is added, removed, or modified,\r
-<em>GIT_EXTERNAL_DIFF</em> is called with 7 parameters:</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>path old-file old-hex old-mode new-file new-hex new-mode</tt></pre>\r
-</div></div>\r
-<p>where:</p>\r
-<div class="hlist"><table>\r
-<tr>\r
-<td class="hlist1">\r
-&lt;old|new&gt;-file\r
-</td>\r
-<td class="hlist2">\r
-are files GIT_EXTERNAL_DIFF can use to read the\r
-                      contents of &lt;old|new&gt;,\r
-</td>\r
-</tr>\r
-<tr>\r
-<td class="hlist1">\r
-&lt;old|new&gt;-hex\r
-</td>\r
-<td class="hlist2">\r
-are the 40-hexdigit SHA1 hashes,\r
-</td>\r
-</tr>\r
-<tr>\r
-<td class="hlist1">\r
-&lt;old|new&gt;-mode\r
-</td>\r
-<td class="hlist2">\r
-are the octal representation of the file modes.\r
-</td>\r
-</tr>\r
-</table></div>\r
-<p>The file parameters can point at the user's working file\r
-(e.g. <tt>new-file</tt> in "git-diff-files"), <tt>/dev/null</tt> (e.g. <tt>old-file</tt>\r
-when a new file is added), or a temporary file (e.g. <tt>old-file</tt> in the\r
-index).  <em>GIT_EXTERNAL_DIFF</em> should not worry about unlinking the\r
-temporary file --- it is removed when <em>GIT_EXTERNAL_DIFF</em> exits.</p>\r
-</li>\r
-</ol>\r
-<p>For a path that is unmerged, <em>GIT_EXTERNAL_DIFF</em> is called with 1\r
-parameter, &lt;path&gt;.</p>\r
-</div>\r
-<h2>git specific extension to diff format</h2>\r
-<div class="sectionbody">\r
-<p>What -p option produces is slightly different from the\r
-traditional diff format.</p>\r
+instead they produce a patch file.  You can customize the creation\r
+of such patches via the GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS\r
+environment variables.</p>\r
+<p>What the -p option produces is slightly different from the traditional\r
+diff format.</p>\r
 <ol>\r
 <li>\r
 <p>\r
@@ -983,7 +912,7 @@ two unresolved merge parents with the working tree file
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 27-Oct-2006 09:29:01 UTC\r
+Last updated 28-Nov-2006 02:22:13 UTC\r
 </div>\r
 </div>\r
 </body>\r
index dc0622866ca88b697e145ec899abc9e514359c54..f330ff65b8446dbf1e21808640a349165361a373 100644 (file)
@@ -1033,82 +1033,11 @@ respectively.</p>
 <div class="sectionbody">\r
 <p>When "git-diff-index", "git-diff-tree", or "git-diff-files" are run\r
 with a <em>-p</em> option, they do not produce the output described above;\r
-instead they produce a patch file.</p>\r
-<p>The patch generation can be customized at two levels.</p>\r
-<ol>\r
-<li>\r
-<p>\r
-When the environment variable <em>GIT_EXTERNAL_DIFF</em> is not set,\r
-   these commands internally invoke "diff" like this:\r
-</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>diff -L a/&lt;path&gt; -L b/&lt;path&gt; -pu &lt;old&gt; &lt;new&gt;</tt></pre>\r
-</div></div>\r
-<p>For added files, <tt>/dev/null</tt> is used for &lt;old&gt;.  For removed\r
-files, <tt>/dev/null</tt> is used for &lt;new&gt;</p>\r
-<p>The "diff" formatting options can be customized via the\r
-environment variable <em>GIT_DIFF_OPTS</em>.  For example, if you\r
-prefer context diff:</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>GIT_DIFF_OPTS=-c git-diff-index -p HEAD</tt></pre>\r
-</div></div>\r
-</li>\r
-<li>\r
-<p>\r
-When the environment variable <em>GIT_EXTERNAL_DIFF</em> is set, the\r
-   program named by it is called, instead of the diff invocation\r
-   described above.\r
-</p>\r
-<p>For a path that is added, removed, or modified,\r
-<em>GIT_EXTERNAL_DIFF</em> is called with 7 parameters:</p>\r
-<div class="literalblock">\r
-<div class="content">\r
-<pre><tt>path old-file old-hex old-mode new-file new-hex new-mode</tt></pre>\r
-</div></div>\r
-<p>where:</p>\r
-<div class="hlist"><table>\r
-<tr>\r
-<td class="hlist1">\r
-&lt;old|new&gt;-file\r
-</td>\r
-<td class="hlist2">\r
-are files GIT_EXTERNAL_DIFF can use to read the\r
-                      contents of &lt;old|new&gt;,\r
-</td>\r
-</tr>\r
-<tr>\r
-<td class="hlist1">\r
-&lt;old|new&gt;-hex\r
-</td>\r
-<td class="hlist2">\r
-are the 40-hexdigit SHA1 hashes,\r
-</td>\r
-</tr>\r
-<tr>\r
-<td class="hlist1">\r
-&lt;old|new&gt;-mode\r
-</td>\r
-<td class="hlist2">\r
-are the octal representation of the file modes.\r
-</td>\r
-</tr>\r
-</table></div>\r
-<p>The file parameters can point at the user's working file\r
-(e.g. <tt>new-file</tt> in "git-diff-files"), <tt>/dev/null</tt> (e.g. <tt>old-file</tt>\r
-when a new file is added), or a temporary file (e.g. <tt>old-file</tt> in the\r
-index).  <em>GIT_EXTERNAL_DIFF</em> should not worry about unlinking the\r
-temporary file --- it is removed when <em>GIT_EXTERNAL_DIFF</em> exits.</p>\r
-</li>\r
-</ol>\r
-<p>For a path that is unmerged, <em>GIT_EXTERNAL_DIFF</em> is called with 1\r
-parameter, &lt;path&gt;.</p>\r
-</div>\r
-<h2>git specific extension to diff format</h2>\r
-<div class="sectionbody">\r
-<p>What -p option produces is slightly different from the\r
-traditional diff format.</p>\r
+instead they produce a patch file.  You can customize the creation\r
+of such patches via the GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS\r
+environment variables.</p>\r
+<p>What the -p option produces is slightly different from the traditional\r
+diff format.</p>\r
 <ol>\r
 <li>\r
 <p>\r
@@ -1291,7 +1220,7 @@ two unresolved merge parents with the working tree file
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 23-Nov-2006 02:47:19 UTC\r
+Last updated 28-Nov-2006 02:22:14 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 7e2f436f4f3ba62c95beabacfd2acf244e8ed5ba..09ada9751567ccd25966e07316f64145347fef8c 100644 (file)
--- a/git.html
+++ b/git.html
@@ -1617,16 +1617,63 @@ git so take care if using Cogito etc.</p>
 <dt>\r
 <em>GIT_DIFF_OPTS</em>\r
 </dt>\r
+<dd>\r
+<p>\r
+        Only valid setting is "--unified=??" or "-u??" to set the\r
+        number of context lines shown when a unified diff is created.\r
+        This takes precedence over any "-U" or "--unified" option\r
+        value passed on the git diff command line.\r
+</p>\r
+</dd>\r
 <dt>\r
 <em>GIT_EXTERNAL_DIFF</em>\r
 </dt>\r
 <dd>\r
 <p>\r
-        see the "generating patches" section in :\r
-        <a href="git-diff-index.html">git-diff-index(1)</a>;\r
-        <a href="git-diff-files.html">git-diff-files(1)</a>;\r
-        <a href="git-diff-tree.html">git-diff-tree(1)</a>\r
+        When the environment variable <em>GIT_EXTERNAL_DIFF</em> is set, the\r
+        program named by it is called, instead of the diff invocation\r
+        described above.  For a path that is added, removed, or modified,\r
+        <em>GIT_EXTERNAL_DIFF</em> is called with 7 parameters:\r
 </p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>path old-file old-hex old-mode new-file new-hex new-mode</tt></pre>\r
+</div></div>\r
+<p>where:</p>\r
+<div class="hlist"><table>\r
+<tr>\r
+<td class="hlist1">\r
+&lt;old|new&gt;-file\r
+</td>\r
+<td class="hlist2">\r
+are files GIT_EXTERNAL_DIFF can use to read the\r
+                         contents of &lt;old|new&gt;,\r
+</td>\r
+</tr>\r
+<tr>\r
+<td class="hlist1">\r
+&lt;old|new&gt;-hex\r
+</td>\r
+<td class="hlist2">\r
+are the 40-hexdigit SHA1 hashes,\r
+</td>\r
+</tr>\r
+<tr>\r
+<td class="hlist1">\r
+&lt;old|new&gt;-mode\r
+</td>\r
+<td class="hlist2">\r
+are the octal representation of the file modes.\r
+</td>\r
+</tr>\r
+</table></div>\r
+<p>The file parameters can point at the user's working file\r
+(e.g. <tt>new-file</tt> in "git-diff-files"), <tt>/dev/null</tt> (e.g. <tt>old-file</tt>\r
+when a new file is added), or a temporary file (e.g. <tt>old-file</tt> in the\r
+index).  <em>GIT_EXTERNAL_DIFF</em> should not worry about unlinking the\r
+temporary file --- it is removed when <em>GIT_EXTERNAL_DIFF</em> exits.</p>\r
+<p>For a path that is unmerged, <em>GIT_EXTERNAL_DIFF</em> is called with 1\r
+parameter, &lt;path&gt;.</p>\r
 </dd>\r
 </dl>\r
 <h3>other</h3>\r
@@ -2214,7 +2261,7 @@ contributors on the git-list &lt;git@vger.kernel.org&gt;.</p>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 18-Nov-2006 22:17:48 UTC\r
+Last updated 28-Nov-2006 02:22:15 UTC\r
 </div>\r
 </div>\r
 </body>\r
diff --git a/git.txt b/git.txt
index 619d65685eb51cdad2ba7faeaa16223ca55b2b81..6382ef0a02f9c40d5a46e10ea517a64bfa9ba42d 100644 (file)
--- a/git.txt
+++ b/git.txt
@@ -639,11 +639,35 @@ git Commits
 git Diffs
 ~~~~~~~~~
 'GIT_DIFF_OPTS'::
+       Only valid setting is "--unified=??" or "-u??" to set the
+       number of context lines shown when a unified diff is created.
+       This takes precedence over any "-U" or "--unified" option
+       value passed on the git diff command line.
+
 'GIT_EXTERNAL_DIFF'::
-       see the "generating patches" section in :
-       gitlink:git-diff-index[1];
-       gitlink:git-diff-files[1];
-       gitlink:git-diff-tree[1]
+       When the environment variable 'GIT_EXTERNAL_DIFF' is set, the
+       program named by it is called, instead of the diff invocation
+       described above.  For a path that is added, removed, or modified,
+        'GIT_EXTERNAL_DIFF' is called with 7 parameters:
+
+       path old-file old-hex old-mode new-file new-hex new-mode
++
+where:
+
+       <old|new>-file:: are files GIT_EXTERNAL_DIFF can use to read the
+                         contents of <old|new>,
+       <old|new>-hex:: are the 40-hexdigit SHA1 hashes,
+       <old|new>-mode:: are the octal representation of the file modes.
+
++
+The file parameters can point at the user's working file
+(e.g. `new-file` in "git-diff-files"), `/dev/null` (e.g. `old-file`
+when a new file is added), or a temporary file (e.g. `old-file` in the
+index).  'GIT_EXTERNAL_DIFF' should not worry about unlinking the
+temporary file --- it is removed when 'GIT_EXTERNAL_DIFF' exits.
++
+For a path that is unmerged, 'GIT_EXTERNAL_DIFF' is called with 1
+parameter, <path>.
 
 other
 ~~~~~