Merge branch 'rs/use-strbuf-complete-line'
[gitweb.git] / Documentation / git-difftool.txt
index fe38f667f9cd232c3c7a8bc7653648995b3ce4aa..333cf6ff91c59fd96b587257ad413268df9a1458 100644 (file)
@@ -12,13 +12,19 @@ SYNOPSIS
 
 DESCRIPTION
 -----------
-'git difftool' is a git command that allows you to compare and edit files
+'git difftool' is a Git command that allows you to compare and edit files
 between revisions using common diff tools.  'git difftool' is a frontend
 to 'git diff' and accepts the same options and arguments. See
 linkgit:git-diff[1].
 
 OPTIONS
 -------
+-d::
+--dir-diff::
+       Copy the modified files to a temporary location and perform
+       a directory diff on them. This mode never prompts before
+       launching the diff tool.
+
 -y::
 --no-prompt::
        Do not prompt before launching a diff tool.
@@ -30,11 +36,9 @@ OPTIONS
 
 -t <tool>::
 --tool=<tool>::
-       Use the diff tool specified by <tool>.
-       Valid diff tools are:
-       araxis, bc3, deltawalker, diffuse, emerge, ecmerge, gvimdiff,
-       kdiff3, kompare, meld, opendiff, p4merge, tkdiff, vimdiff and
-       xxdiff.
+       Use the diff tool specified by <tool>.  Valid values include
+       emerge, kompare, meld, and vimdiff. Run `git difftool --tool-help`
+       for the list of valid <tool> settings.
 +
 If a diff tool is not specified, 'git difftool'
 will use the configuration variable `diff.tool`.  If the
@@ -62,6 +66,18 @@ of the diff post-image.  `$MERGED` is the name of the file which is
 being compared. `$BASE` is provided for compatibility
 with custom merge tool commands and has the same value as `$MERGED`.
 
+--tool-help::
+       Print a list of diff tools that may be used with `--tool`.
+
+--[no-]symlinks::
+       'git difftool''s default behavior is create symlinks to the
+       working tree when run in `--dir-diff` mode and the right-hand
+       side of the comparison yields the same content as the file in
+       the working tree.
++
+Specifying `--no-symlinks` instructs 'git difftool' to create copies
+instead.  `--no-symlinks` is the default on Windows.
+
 -x <command>::
 --extcmd=<command>::
        Specify a custom command for viewing diffs.
@@ -75,6 +91,15 @@ with custom merge tool commands and has the same value as `$MERGED`.
        the default diff tool will be read from the configured
        `diff.guitool` variable instead of `diff.tool`.
 
+--[no-]trust-exit-code::
+       'git-difftool' invokes a diff tool individually on each file.
+       Errors reported by the diff tool are ignored by default.
+       Use `--trust-exit-code` to make 'git-difftool' exit when an
+       invoked diff tool returns a non-zero exit code.
++
+'git-difftool' will forward the exit code of the invoked tool when
+'--trust-exit-code' is used.
+
 See linkgit:git-diff[1] for the full list of supported options.
 
 CONFIG VARIABLES
@@ -100,6 +125,11 @@ See the `--tool=<tool>` option above for more details.
 difftool.prompt::
        Prompt before each invocation of the diff tool.
 
+difftool.trustExitCode::
+       Exit difftool if the invoked diff tool returns a non-zero exit status.
++
+See the `--trust-exit-code` option above for more details.
+
 SEE ALSO
 --------
 linkgit:git-diff[1]::