generate <tt>Binary files differ</tt>.\r
</p>\r
</dd>\r
+<dt>\r
+String\r
+</dt>\r
+<dd>\r
+<p>\r
+ Diff is shown using the specified custom diff driver.\r
+ The driver program is given its input using the same\r
+ calling convention as used for GIT_EXTERNAL_DIFF\r
+ program.\r
+</p>\r
+</dd>\r
</dl>\r
-<p>Any other value set to <tt>diff</tt> attribute is ignored and git acts\r
-as if the attribute is left unspecified.</p>\r
+<h4>Defining a custom diff driver</h4>\r
+<p>The definition of a diff driver is done in <tt>gitconfig</tt>, not\r
+<tt>gitattributes</tt> file, so strictly speaking this manual page is a\r
+wrong place to talk about it. However…</p>\r
+<p>To define a custom diff driver <tt>jcdiff</tt>, add a section to your\r
+<tt>$GIT_DIR/config</tt> file (or <tt>$HOME/.gitconfig</tt> file) like this:</p>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>[diff "jcdiff"]\r
+ command = j-c-diff</tt></pre>\r
+</div></div>\r
+<p>When git needs to show you a diff for the path with <tt>diff</tt>\r
+attribute set to <tt>jcdiff</tt>, it calls the command you specified\r
+with the above configuration, i.e. <tt>j-c-diff</tt>, with 7\r
+parameters, just like <tt>GIT_EXTERNAL_DIFF</tt> program is called.\r
+See <a href="git.html">git(7)</a> for details.</p>\r
<h3>Performing a three-way merge</h3>\r
<p>The attribute <tt>merge</tt> affects how three versions of a file is\r
merged when a file-level merge is necessary during <tt>git merge</tt>,\r
</p>\r
</dd>\r
<dt>\r
-Any other string value\r
+String\r
</dt>\r
<dd>\r
<p>\r
</div>\r
<div id="footer">\r
<div id="footer-text">\r
-Last updated 22-Apr-2007 07:22:00 UTC\r
+Last updated 23-Apr-2007 07:26:51 UTC\r
</div>\r
</div>\r
</body>\r
text, it is treated as text. Otherwise it would
generate `Binary files differ`.
-Any other value set to `diff` attribute is ignored and git acts
-as if the attribute is left unspecified.
+String::
+
+ Diff is shown using the specified custom diff driver.
+ The driver program is given its input using the same
+ calling convention as used for GIT_EXTERNAL_DIFF
+ program.
+
+
+Defining a custom diff driver
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The definition of a diff driver is done in `gitconfig`, not
+`gitattributes` file, so strictly speaking this manual page is a
+wrong place to talk about it. However...
+
+To define a custom diff driver `jcdiff`, add a section to your
+`$GIT_DIR/config` file (or `$HOME/.gitconfig` file) like this:
+
+----------------------------------------------------------------
+[diff "jcdiff"]
+ command = j-c-diff
+----------------------------------------------------------------
+
+When git needs to show you a diff for the path with `diff`
+attribute set to `jcdiff`, it calls the command you specified
+with the above configuration, i.e. `j-c-diff`, with 7
+parameters, just like `GIT_EXTERNAL_DIFF` program is called.
+See gitlink:git[7] for details.
Performing a three-way merge
different merge driver to be used for paths to which the
`merge` attribute is unspecified.
-Any other string value::
+String::
3-way merge is performed using the specified custom
merge driver. The built-in 3-way merge driver can be