mirror of
https://github.com/git/git.git
synced 2024-10-28 21:07:52 +01:00
42943b950e
When no merge.tool or diff.tool is configured or manually selected, the selection of a default tool is sensitive to the DISPLAY variable; in a GUI session a gui-specific tool will be proposed if found, and otherwise a terminal-based one. This "GUI-optimizing" behavior is important because a GUI can make a huge difference to a user's ability to understand and correctly complete a non-trivial conflicting merge. Some time ago the merge.guitool and diff.guitool config options were introduced to enable users to configure both a GUI tool, and a non-GUI tool (with fallback if no GUI tool configured), in the same environment. Unfortunately, the --gui argument introduced to support the selection of the guitool is still explicit. When using configured tools, there is no equivalent of the no-tool-configured "propose a GUI tool if we are in a GUI environment" behavior. As proposed in <xmqqmtb8jsej.fsf@gitster.g>, introduce new configuration options, difftool.guiDefault and mergetool.guiDefault, supporting a special value "auto" which causes the corresponding tool or guitool to be selected depending on the presence of a non-empty DISPLAY value. Also support "true" to say "default to the guitool (unless --no-gui is passed on the commandline)", and "false" as the previous default behavior when these new configuration options are not specified. Signed-off-by: Tao Klerks <tao@klerks.biz> Acked-by: David Aguilar <davvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
43 lines
1.8 KiB
Text
43 lines
1.8 KiB
Text
diff.tool::
|
|
Controls which diff tool is used by linkgit:git-difftool[1].
|
|
This variable overrides the value configured in `merge.tool`.
|
|
The list below shows the valid built-in values.
|
|
Any other value is treated as a custom diff tool and requires
|
|
that a corresponding difftool.<tool>.cmd variable is defined.
|
|
|
|
diff.guitool::
|
|
Controls which diff tool is used by linkgit:git-difftool[1] when
|
|
the -g/--gui flag is specified. This variable overrides the value
|
|
configured in `merge.guitool`. The list below shows the valid
|
|
built-in values. Any other value is treated as a custom diff tool
|
|
and requires that a corresponding difftool.<guitool>.cmd variable
|
|
is defined.
|
|
|
|
difftool.<tool>.cmd::
|
|
Specify the command to invoke the specified diff tool.
|
|
The specified command is evaluated in shell with the following
|
|
variables available: 'LOCAL' is set to the name of the temporary
|
|
file containing the contents of the diff pre-image and 'REMOTE'
|
|
is set to the name of the temporary file containing the contents
|
|
of the diff post-image.
|
|
+
|
|
See the `--tool=<tool>` option in linkgit:git-difftool[1] for more details.
|
|
|
|
difftool.<tool>.path::
|
|
Override the path for the given tool. This is useful in case
|
|
your tool is not in the PATH.
|
|
|
|
difftool.trustExitCode::
|
|
Exit difftool if the invoked diff tool returns a non-zero exit status.
|
|
+
|
|
See the `--trust-exit-code` option in linkgit:git-difftool[1] for more details.
|
|
|
|
difftool.prompt::
|
|
Prompt before each invocation of the diff tool.
|
|
|
|
difftool.guiDefault::
|
|
Set `true` to use the `diff.guitool` by default (equivalent to specifying
|
|
the `--gui` argument), or `auto` to select `diff.guitool` or `diff.tool`
|
|
depending on the presence of a `DISPLAY` environment variable value. The
|
|
default is `false`, where the `--gui` argument must be provided
|
|
explicitly for the `diff.guitool` to be used.
|