git/Documentation/config
Tao Klerks 42943b950e mergetool: new config guiDefault supports auto-toggling gui by DISPLAY
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>
2023-04-05 21:03:29 -07:00
..
add.txt add: remove "add.interactive.useBuiltin" & Perl "git add--interactive" 2023-02-06 15:03:34 -08:00
advice.txt advice: add diverging advice for novices 2023-03-08 09:28:42 -08:00
alias.txt
am.txt
apply.txt
blame.txt
branch.txt push: default to single remote even when not named origin 2022-04-29 11:20:55 -07:00
browser.txt
bundle.txt bundle-uri: parse bundle.heuristic=creationToken 2023-01-31 08:57:48 -08:00
checkout.txt
clean.txt
clone.txt
color.txt
column.txt
commit.txt
commitgraph.txt
completion.txt
core.txt doc: use "commit-graph" hyphenation consistently 2022-10-30 19:58:40 -04:00
credential.txt
diff.txt difftool docs: de-duplicate configuration sections 2022-09-07 09:46:06 -07:00
difftool.txt mergetool: new config guiDefault supports auto-toggling gui by DISPLAY 2023-04-05 21:03:29 -07:00
extensions.txt
fastimport.txt
feature.txt features: feature.manyFiles implies fast index writes 2023-01-07 07:46:14 +09:00
fetch.txt bundle-uri: store fetch.bundleCreationToken 2023-01-31 08:57:48 -08:00
filter.txt
fmt-merge-msg.txt
format.txt format-patch: add format.noprefix option 2023-03-09 08:37:27 -08:00
fsck.txt fsck: document msg-id 2022-10-25 15:44:18 -07:00
fsmonitor--daemon.txt fsmonitor: add documentation for allowRemote and socketDir options 2022-10-05 11:05:23 -07:00
gc.txt builtin/gc.c: conditionally avoid pruning objects via loose 2022-05-26 15:48:26 -07:00
gitcvs.txt
gitweb.txt
gpg.txt signature-format.txt: note SSH and X.509 signature delimiters 2023-02-27 13:42:43 -08:00
grep.txt grep docs: de-duplicate configuration sections 2022-09-07 09:46:05 -07:00
gui.txt
guitool.txt
help.txt
http.txt i18n: fix mismatched camelCase config variables 2022-06-17 10:38:26 -07:00
i18n.txt
imap.txt
includeif.txt config.txt: document include, includeIf 2022-07-17 14:23:42 -07:00
index.txt read-cache: add index.skipHash config option 2023-01-07 07:46:14 +09:00
init.txt
instaweb.txt
interactive.txt
log.txt diff-merges: clarify log.diffMerges documentation 2022-09-16 09:21:44 -07:00
lsrefs.txt docs: move protocol-related docs to man section 5 2022-08-04 14:12:23 -07:00
mailinfo.txt
mailmap.txt
maintenance.txt
man.txt
merge.txt
mergetool.txt mergetool: new config guiDefault supports auto-toggling gui by DISPLAY 2023-04-05 21:03:29 -07:00
notes.txt notes docs: de-duplicate and combine configuration sections 2022-09-07 09:46:06 -07:00
pack.txt Merge branch 'ac/bitmap-lookup-table' 2022-09-05 18:33:39 -07:00
pager.txt
pretty.txt
protocol.txt Sync with 2.37.4 2022-10-06 20:00:04 -04:00
pull.txt
push.txt Doc: document push.recurseSubmodules=only 2022-11-14 16:55:50 -05:00
rebase.txt rebase: add a config option for --rebase-merges 2023-03-27 09:32:49 -07:00
receive.txt
remote.txt docs: mention --refetch fetch option 2022-03-28 10:25:53 -07:00
remotes.txt
repack.txt builtin/repack.c: allow configuring cruft pack generation 2022-05-26 15:48:26 -07:00
rerere.txt
revert.txt revert: config documentation fixes 2022-06-27 08:37:36 -07:00
safe.txt setup.c: create `safe.bareRepository` 2022-07-14 15:08:29 -07:00
sendemail.txt send-email docs: de-duplicate configuration sections 2022-09-07 09:46:05 -07:00
sequencer.txt
showbranch.txt
sparse.txt
splitindex.txt
ssh.txt
stash.txt
status.txt
submodule.txt
tag.txt
tar.txt
trace2.txt
transfer.txt bundle-uri client: add boolean transfer.bundleURI setting 2022-12-25 16:24:23 +09:00
uploadarchive.txt
uploadpack.txt Documentation: define protected configuration 2022-07-14 15:08:29 -07:00
url.txt
user.txt
versionsort.txt
web.txt
worktree.txt