summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2022-05-10 17:55:58 -0700
committerJunio C Hamano <gitster@pobox.com>2022-05-10 17:55:58 -0700
commit84d4cc0f4680776dd97a47c94542f687016d6969 (patch)
tree9424578e4d5e86cf45f5a526c8390c8573678b6f
parent618d168e87f2df1c2024d642806af7abfb79cc74 (diff)
downloadgit-htmldocs-84d4cc0f4680776dd97a47c94542f687016d6969.tar.gz
Autogenerated HTML docs for v2.36.1-60-gb9de9
-rw-r--r--RelNotes/2.37.0.txt23
-rw-r--r--git-config.html578
-rw-r--r--git-merge.html301
-rw-r--r--git-mergetool.html281
-rw-r--r--git-mergetool.txt8
-rw-r--r--howto/coordinate-embargoed-releases.html2
-rw-r--r--howto/keep-canonical-history-correct.html2
-rw-r--r--howto/maintain-git.html2
-rw-r--r--howto/new-command.html2
-rw-r--r--howto/rebase-from-internal-branch.html2
-rw-r--r--howto/rebuild-from-update-hook.html2
-rw-r--r--howto/recover-corrupted-blob-object.html2
-rw-r--r--howto/recover-corrupted-object-harder.html2
-rw-r--r--howto/revert-a-faulty-merge.html2
-rw-r--r--howto/revert-branch-rebase.html2
-rw-r--r--howto/separating-topic-branches.html2
-rw-r--r--howto/setup-git-server-over-http.html2
-rw-r--r--howto/update-hook-example.html2
-rw-r--r--howto/use-git-daemon.html2
-rw-r--r--howto/using-merge-subtree.html2
-rw-r--r--howto/using-signed-tag-in-pull-request.html2
-rw-r--r--mergetools-diff.txt57
-rw-r--r--mergetools-merge.txt66
23 files changed, 941 insertions, 405 deletions
diff --git a/RelNotes/2.37.0.txt b/RelNotes/2.37.0.txt
index 091207f18..817540643 100644
--- a/RelNotes/2.37.0.txt
+++ b/RelNotes/2.37.0.txt
@@ -1,6 +1,19 @@
Git v2.37 Release Notes
=======================
+UI, Workflows & Features
+
+ * "vimdiff[123]" mergetool drivers have been reimplemented with a
+ more generic layout mechanism.
+
+
+Performance, Internal Implementation, Development Support etc.
+
+ * The performance of the "untracked cache" feature has been improved
+ when "--untracked-files=<mode>" and "status.showUntrackedFiles"
+ are combined.
+
+
Fixes since v2.36
-----------------
@@ -49,5 +62,13 @@ Fixes since v2.36
* Correct choices of C compilers used in various CI jobs.
(merge 3506cae04f ab/cc-package-fixes later to maint).
- * Code clean-up.
+ * Various cleanups to "git p4".
+ (merge 4ff0108d9e jh/p4-various-fixups later to maint).
+
+ * The progress meter of "git blame" was showing incorrect numbers
+ when processing only parts of the file.
+ (merge e5f5d7d42e ea/progress-partial-blame later to maint).
+
+ * Other code cleanup, docfix, build fix, etc.
(merge e6b2582da3 cm/reftable-0-length-memset later to maint).
+ (merge 0b75e5bf22 ab/misc-cleanup later to maint).
diff --git a/git-config.html b/git-config.html
index 29a8fe13a..09c49e31a 100644
--- a/git-config.html
+++ b/git-config.html
@@ -4821,173 +4821,200 @@ diff.guitool
and requires that a corresponding difftool.&lt;guitool&gt;.cmd variable
is defined.
</p>
-<div class="ulist"><ul>
-<li>
-<p>
-araxis
-</p>
-</li>
-<li>
-<p>
-bc
-</p>
-</li>
-<li>
-<p>
-bc3
-</p>
-</li>
-<li>
-<p>
-bc4
-</p>
-</li>
-<li>
-<p>
-codecompare
-</p>
-</li>
-<li>
-<p>
-deltawalker
-</p>
-</li>
-<li>
-<p>
-diffmerge
-</p>
-</li>
-<li>
-<p>
-diffuse
-</p>
-</li>
-<li>
-<p>
-ecmerge
-</p>
-</li>
-<li>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<code>araxis</code>
+</dt>
+<dd>
<p>
-emerge
+Use Araxis Merge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>bc</code>
+</dt>
+<dd>
<p>
-examdiff
+Use Beyond Compare (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>bc3</code>
+</dt>
+<dd>
<p>
-guiffy
+Use Beyond Compare (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>bc4</code>
+</dt>
+<dd>
<p>
-gvimdiff
+Use Beyond Compare (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>codecompare</code>
+</dt>
+<dd>
<p>
-gvimdiff1
+Use Code Compare (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>deltawalker</code>
+</dt>
+<dd>
<p>
-gvimdiff2
+Use DeltaWalker (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>diffmerge</code>
+</dt>
+<dd>
<p>
-gvimdiff3
+Use DiffMerge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>diffuse</code>
+</dt>
+<dd>
<p>
-kdiff3
+Use Diffuse (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>ecmerge</code>
+</dt>
+<dd>
<p>
-kompare
+Use ECMerge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>emerge</code>
+</dt>
+<dd>
<p>
-meld
+Use Emacs' Emerge
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>examdiff</code>
+</dt>
+<dd>
<p>
-nvimdiff
+Use ExamDiff Pro (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>guiffy</code>
+</dt>
+<dd>
<p>
-nvimdiff1
+Use Guiffy&#8217;s Diff Tool (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>gvimdiff</code>
+</dt>
+<dd>
<p>
-nvimdiff2
+Use gVim (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>kdiff3</code>
+</dt>
+<dd>
<p>
-nvimdiff3
+Use KDiff3 (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>kompare</code>
+</dt>
+<dd>
<p>
-opendiff
+Use Kompare (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>meld</code>
+</dt>
+<dd>
<p>
-p4merge
+Use Meld (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>nvimdiff</code>
+</dt>
+<dd>
<p>
-smerge
+Use Neovim
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>opendiff</code>
+</dt>
+<dd>
<p>
-tkdiff
+Use FileMerge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>p4merge</code>
+</dt>
+<dd>
<p>
-vimdiff
+Use HelixCore P4Merge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>smerge</code>
+</dt>
+<dd>
<p>
-vimdiff1
+Use Sublime Merge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>tkdiff</code>
+</dt>
+<dd>
<p>
-vimdiff2
+Use TkDiff (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>vimdiff</code>
+</dt>
+<dd>
<p>
-vimdiff3
+Use Vim
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>winmerge</code>
+</dt>
+<dd>
<p>
-winmerge
+Use WinMerge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>xxdiff</code>
+</dt>
+<dd>
<p>
-xxdiff
+Use xxdiff (requires a graphical session)
</p>
-</li>
-</ul></div>
+</dd>
+</dl></div>
</dd>
<dt class="hdlist1">
diff.indentHeuristic
@@ -7867,173 +7894,272 @@ merge.guitool
Any other value is treated as a custom merge tool and requires that a
corresponding mergetool.&lt;guitool&gt;.cmd variable is defined.
</p>
-<div class="ulist"><ul>
-<li>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<code>araxis</code>
+</dt>
+<dd>
<p>
-araxis
+Use Araxis Merge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>bc</code>
+</dt>
+<dd>
<p>
-bc
+Use Beyond Compare (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>bc3</code>
+</dt>
+<dd>
<p>
-bc3
+Use Beyond Compare (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>bc4</code>
+</dt>
+<dd>
<p>
-bc4
+Use Beyond Compare (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>codecompare</code>
+</dt>
+<dd>
<p>
-codecompare
+Use Code Compare (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>deltawalker</code>
+</dt>
+<dd>
<p>
-deltawalker
+Use DeltaWalker (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>diffmerge</code>
+</dt>
+<dd>
<p>
-diffmerge
+Use DiffMerge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>diffuse</code>
+</dt>
+<dd>
<p>
-diffuse
+Use Diffuse (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>ecmerge</code>
+</dt>
+<dd>
<p>
-ecmerge
+Use ECMerge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>emerge</code>
+</dt>
+<dd>
<p>
-emerge
+Use Emacs' Emerge
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>examdiff</code>
+</dt>
+<dd>
<p>
-examdiff
+Use ExamDiff Pro (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>guiffy</code>
+</dt>
+<dd>
<p>
-guiffy
+Use Guiffy&#8217;s Diff Tool (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>gvimdiff</code>
+</dt>
+<dd>
<p>
-gvimdiff
+Use gVim (requires a graphical session) with a custom layout (see <code>git help mergetool</code>'s <code>BACKEND SPECIFIC HINTS</code> section)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>gvimdiff1</code>
+</dt>
+<dd>
<p>
-gvimdiff1
+Use gVim (requires a graphical session) with a 2 panes layout (LOCAL and REMOTE)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>gvimdiff2</code>
+</dt>
+<dd>
<p>
-gvimdiff2
+Use gVim (requires a graphical session) with a 3 panes layout (LOCAL, MERGED and REMOTE)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>gvimdiff3</code>
+</dt>
+<dd>
<p>
-gvimdiff3
+Use gVim (requires a graphical session) where only the MERGED file is shown
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>kdiff3</code>
+</dt>
+<dd>
<p>
-kdiff3
+Use KDiff3 (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>meld</code>
+</dt>
+<dd>
<p>
-meld
+Use Meld (requires a graphical session) with optional <code>auto merge</code> (see <code>git help mergetool</code>'s <code>CONFIGURATION</code> section)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>nvimdiff</code>
+</dt>
+<dd>
<p>
-nvimdiff
+Use Neovim with a custom layout (see <code>git help mergetool</code>'s <code>BACKEND SPECIFIC HINTS</code> section)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>nvimdiff1</code>
+</dt>
+<dd>
<p>
-nvimdiff1
+Use Neovim with a 2 panes layout (LOCAL and REMOTE)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>nvimdiff2</code>
+</dt>
+<dd>
<p>
-nvimdiff2
+Use Neovim with a 3 panes layout (LOCAL, MERGED and REMOTE)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>nvimdiff3</code>
+</dt>
+<dd>
<p>
-nvimdiff3
+Use Neovim where only the MERGED file is shown
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>opendiff</code>
+</dt>
+<dd>
<p>
-opendiff
+Use FileMerge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>p4merge</code>
+</dt>
+<dd>
<p>
-p4merge
+Use HelixCore P4Merge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>smerge</code>
+</dt>
+<dd>
<p>
-smerge
+Use Sublime Merge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>tkdiff</code>
+</dt>
+<dd>
<p>
-tkdiff
+Use TkDiff (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>tortoisemerge</code>
+</dt>
+<dd>
<p>
-tortoisemerge
+Use TortoiseMerge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>vimdiff</code>
+</dt>
+<dd>
<p>
-vimdiff
+Use Vim with a custom layout (see <code>git help mergetool</code>'s <code>BACKEND SPECIFIC HINTS</code> section)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>vimdiff1</code>
+</dt>
+<dd>
<p>
-vimdiff1
+Use Vim with a 2 panes layout (LOCAL and REMOTE)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>vimdiff2</code>
+</dt>
+<dd>
<p>
-vimdiff2
+Use Vim with a 3 panes layout (LOCAL, MERGED and REMOTE)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>vimdiff3</code>
+</dt>
+<dd>
<p>
-vimdiff3
+Use Vim where only the MERGED file is shown
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>winmerge</code>
+</dt>
+<dd>
<p>
-winmerge
+Use WinMerge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>xxdiff</code>
+</dt>
+<dd>
<p>
-xxdiff
+Use xxdiff (requires a graphical session)
</p>
-</li>
-</ul></div>
+</dd>
+</dl></div>
</dd>
<dt class="hdlist1">
merge.verbosity
@@ -8154,6 +8280,18 @@ mergetool.meld.useAutoMerge
</p>
</dd>
<dt class="hdlist1">
+mergetool.vimdiff.layout
+</dt>
+<dd>
+<p>
+ The vimdiff backend uses this variable to control how its split
+ windows look like. Applies even if you are using Neovim (<code>nvim</code>) or
+ gVim (<code>gvim</code>) as the merge tool. See BACKEND SPECIFIC HINTS section
+ in <a href="git-mergetool.html">git-mergetool(1)</a>.
+ for details.
+</p>
+</dd>
+<dt class="hdlist1">
mergetool.hideResolved
</dt>
<dd>
diff --git a/git-merge.html b/git-merge.html
index 6dd7e7e7c..8d4925461 100644
--- a/git-merge.html
+++ b/git-merge.html
@@ -1973,173 +1973,272 @@ merge.guitool
Any other value is treated as a custom merge tool and requires that a
corresponding mergetool.&lt;guitool&gt;.cmd variable is defined.
</p>
-<div class="ulist"><ul>
-<li>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<code>araxis</code>
+</dt>
+<dd>
<p>
-araxis
+Use Araxis Merge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>bc</code>
+</dt>
+<dd>
<p>
-bc
+Use Beyond Compare (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>bc3</code>
+</dt>
+<dd>
<p>
-bc3
+Use Beyond Compare (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>bc4</code>
+</dt>
+<dd>
<p>
-bc4
+Use Beyond Compare (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>codecompare</code>
+</dt>
+<dd>
<p>
-codecompare
+Use Code Compare (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>deltawalker</code>
+</dt>
+<dd>
<p>
-deltawalker
+Use DeltaWalker (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>diffmerge</code>
+</dt>
+<dd>
<p>
-diffmerge
+Use DiffMerge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>diffuse</code>
+</dt>
+<dd>
<p>
-diffuse
+Use Diffuse (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>ecmerge</code>
+</dt>
+<dd>
<p>
-ecmerge
+Use ECMerge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>emerge</code>
+</dt>
+<dd>
<p>
-emerge
+Use Emacs' Emerge
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>examdiff</code>
+</dt>
+<dd>
<p>
-examdiff
+Use ExamDiff Pro (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>guiffy</code>
+</dt>
+<dd>
<p>
-guiffy
+Use Guiffy&#8217;s Diff Tool (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>gvimdiff</code>
+</dt>
+<dd>
<p>
-gvimdiff
+Use gVim (requires a graphical session) with a custom layout (see <code>git help mergetool</code>'s <code>BACKEND SPECIFIC HINTS</code> section)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>gvimdiff1</code>
+</dt>
+<dd>
<p>
-gvimdiff1
+Use gVim (requires a graphical session) with a 2 panes layout (LOCAL and REMOTE)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>gvimdiff2</code>
+</dt>
+<dd>
<p>
-gvimdiff2
+Use gVim (requires a graphical session) with a 3 panes layout (LOCAL, MERGED and REMOTE)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>gvimdiff3</code>
+</dt>
+<dd>
<p>
-gvimdiff3
+Use gVim (requires a graphical session) where only the MERGED file is shown
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>kdiff3</code>
+</dt>
+<dd>
<p>
-kdiff3
+Use KDiff3 (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>meld</code>
+</dt>
+<dd>
<p>
-meld
+Use Meld (requires a graphical session) with optional <code>auto merge</code> (see <code>git help mergetool</code>'s <code>CONFIGURATION</code> section)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>nvimdiff</code>
+</dt>
+<dd>
<p>
-nvimdiff
+Use Neovim with a custom layout (see <code>git help mergetool</code>'s <code>BACKEND SPECIFIC HINTS</code> section)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>nvimdiff1</code>
+</dt>
+<dd>
<p>
-nvimdiff1
+Use Neovim with a 2 panes layout (LOCAL and REMOTE)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>nvimdiff2</code>
+</dt>
+<dd>
<p>
-nvimdiff2
+Use Neovim with a 3 panes layout (LOCAL, MERGED and REMOTE)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>nvimdiff3</code>
+</dt>
+<dd>
<p>
-nvimdiff3
+Use Neovim where only the MERGED file is shown
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>opendiff</code>
+</dt>
+<dd>
<p>
-opendiff
+Use FileMerge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>p4merge</code>
+</dt>
+<dd>
<p>
-p4merge
+Use HelixCore P4Merge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>smerge</code>
+</dt>
+<dd>
<p>
-smerge
+Use Sublime Merge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>tkdiff</code>
+</dt>
+<dd>
<p>
-tkdiff
+Use TkDiff (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>tortoisemerge</code>
+</dt>
+<dd>
<p>
-tortoisemerge
+Use TortoiseMerge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>vimdiff</code>
+</dt>
+<dd>
<p>
-vimdiff
+Use Vim with a custom layout (see <code>git help mergetool</code>'s <code>BACKEND SPECIFIC HINTS</code> section)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>vimdiff1</code>
+</dt>
+<dd>
<p>
-vimdiff1
+Use Vim with a 2 panes layout (LOCAL and REMOTE)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>vimdiff2</code>
+</dt>
+<dd>
<p>
-vimdiff2
+Use Vim with a 3 panes layout (LOCAL, MERGED and REMOTE)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>vimdiff3</code>
+</dt>
+<dd>
<p>
-vimdiff3
+Use Vim where only the MERGED file is shown
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>winmerge</code>
+</dt>
+<dd>
<p>
-winmerge
+Use WinMerge (requires a graphical session)
</p>
-</li>
-<li>
+</dd>
+<dt class="hdlist1">
+<code>xxdiff</code>
+</dt>
+<dd>
<p>
-xxdiff
+Use xxdiff (requires a graphical session)
</p>
-</li>
-</ul></div>
+</dd>
+</dl></div>
</dd>
<dt class="hdlist1">
merge.verbosity
diff --git a/git-mergetool.html b/git-mergetool.html
index 6548a4065..837c8d310 100644
--- a/git-mergetool.html
+++ b/git-mergetool.html
@@ -966,6 +966,17 @@ mergetool.meld.useAutoMerge
</p>
</dd>
<dt class="hdlist1">
+mergetool.vimdiff.layout
+</dt>
+<dd>
+<p>
+ The vimdiff backend uses this variable to control how its split
+ windows look like. Applies even if you are using Neovim (<code>nvim</code>) or
+ gVim (<code>gvim</code>) as the merge tool. See BACKEND SPECIFIC HINTS section
+ for details.
+</p>
+</dd>
+<dt class="hdlist1">
mergetool.hideResolved
</dt>
<dd>
@@ -1037,6 +1048,274 @@ are successfully merged.</p></div>
</div>
</div>
<div class="sect1">
+<h2 id="_backend_specific_hints">BACKEND SPECIFIC HINTS</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_vimdiff">vimdiff</h3>
+<div class="sect3">
+<h4 id="_description_2">Description</h4>
+<div class="paragraph"><p>When specifying <code>--tool=vimdiff</code> in <code>git mergetool</code> Git will open Vim with a 4
+windows layout distributed in the following way:</p></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>------------------------------------------
+| | | |
+| LOCAL | BASE | REMOTE |
+| | | |
+------------------------------------------
+| |
+| MERGED |
+| |
+------------------------------------------</code></pre>
+</div></div>
+<div class="paragraph"><p><code>LOCAL</code>, <code>BASE</code> and <code>REMOTE</code> are read-only buffers showing the contents of the
+conflicting file in specific commits ("commit you are merging into", "common
+ancestor commit" and "commit you are merging from" respectively)</p></div>
+<div class="paragraph"><p><code>MERGED</code> is a writable buffer where you have to resolve the conflicts (using the
+other read-only buffers as a reference). Once you are done, save and exit Vim as
+usual (<code>:wq</code>) or, if you want to abort, exit using <code>:cq</code>.</p></div>
+</div>
+<div class="sect3">
+<h4 id="_layout_configuration">Layout configuration</h4>
+<div class="paragraph"><p>You can change the windows layout used by Vim by setting configuration variable
+<code>mergetool.vimdiff.layout</code> which accepts a string where the following separators
+have special meaning:</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+<code>+</code> is used to "open a new tab"
+</p>
+</li>
+<li>
+<p>
+<code>,</code> is used to "open a new vertical split"
+</p>
+</li>
+<li>
+<p>
+<code>/</code> is used to "open a new horizontal split"
+</p>
+</li>
+<li>
+<p>
+<code>@</code> is used to indicate which is the file containing the final version after
+ solving the conflicts. If not present, <code>MERGED</code> will be used by default.
+</p>
+</li>
+</ul></div>
+<div class="paragraph"><p>The precedence of the operators is this one (you can use parentheses to change
+it):</p></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>`@` &gt; `+` &gt; `/` &gt; `,`</code></pre>
+</div></div>
+<div class="paragraph"><p>Let&#8217;s see some examples to understand how it works:</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+<code>layout = "(LOCAL,BASE,REMOTE)/MERGED"</code>
+</p>
+<div class="openblock">
+<div class="content">
+<div class="paragraph"><p>This is exactly the same as the default layout we have already seen.</p></div>
+<div class="paragraph"><p>Note that <code>/</code> has precedence over <code>,</code> and thus the parenthesis are not
+needed in this case. The next layout definition is equivalent:</p></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>layout = "LOCAL,BASE,REMOTE / MERGED"</code></pre>
+</div></div>
+</div></div>
+</li>
+<li>
+<p>
+<code>layout = "LOCAL,MERGED,REMOTE"</code>
+</p>
+<div class="openblock">
+<div class="content">
+<div class="paragraph"><p>If, for some reason, we are not interested in the <code>BASE</code> buffer.</p></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>------------------------------------------
+| | | |
+| | | |
+| LOCAL | MERGED | REMOTE |
+| | | |
+| | | |
+------------------------------------------</code></pre>
+</div></div>
+</div></div>
+</li>
+<li>
+<p>
+<code>layout = "MERGED"</code>
+</p>
+<div class="openblock">
+<div class="content">
+<div class="paragraph"><p>Only the <code>MERGED</code> buffer will be shown. Note, however, that all the other
+ones are still loaded in vim, and you can access them with the "buffers"
+command.</p></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>------------------------------------------
+| |
+| |
+| MERGED |
+| |
+| |
+------------------------------------------</code></pre>
+</div></div>
+</div></div>
+</li>
+<li>
+<p>
+<code>layout = "@LOCAL,REMOTE"</code>
+</p>
+<div class="openblock">
+<div class="content">
+<div class="paragraph"><p>When <code>MERGED</code> is not present in the layout, you must "mark" one of the
+buffers with an asterisk. That will become the buffer you need to edit and
+save after resolving the conflicts.</p></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>------------------------------------------
+| | |
+| | |
+| | |
+| LOCAL | REMOTE |
+| | |
+| | |
+| | |
+------------------------------------------</code></pre>
+</div></div>
+</div></div>
+</li>
+<li>
+<p>
+<code>layout = "LOCAL,BASE,REMOTE / MERGED + BASE,LOCAL + BASE,REMOTE"</code>
+</p>
+<div class="openblock">
+<div class="content">
+<div class="paragraph"><p>Three tabs will open: the first one is a copy of the default layout, while
+the other two only show the differences between (<code>BASE</code> and <code>LOCAL</code>) and
+(<code>BASE</code> and <code>REMOTE</code>) respectively.</p></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>------------------------------------------
+| &lt;TAB #1&gt; | TAB #2 | TAB #3 | |
+------------------------------------------
+| | | |
+| LOCAL | BASE | REMOTE |
+| | | |
+------------------------------------------
+| |
+| MERGED |
+| |
+------------------------------------------</code></pre>
+</div></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>------------------------------------------
+| TAB #1 | &lt;TAB #2&gt; | TAB #3 | |
+------------------------------------------
+| | |
+| | |
+| | |
+| BASE | LOCAL |
+| | |
+| | |
+| | |
+------------------------------------------</code></pre>
+</div></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>------------------------------------------
+| TAB #1 | TAB #2 | &lt;TAB #3&gt; | |
+------------------------------------------
+| | |
+| | |
+| | |
+| BASE | REMOTE |
+| | |
+| | |
+| | |
+------------------------------------------</code></pre>
+</div></div>
+</div></div>
+</li>
+<li>
+<p>
+<code>layout = "LOCAL,BASE,REMOTE / MERGED + BASE,LOCAL + BASE,REMOTE + (LOCAL/BASE/REMOTE),MERGED"</code>
+</p>
+<div class="openblock">
+<div class="content">
+<div class="paragraph"><p>Same as the previous example, but adds a fourth tab with the same
+information as the first tab, with a different layout.</p></div>
+<div class="literalblock">
+<div class="content">
+<pre><code>---------------------------------------------
+| TAB #1 | TAB #2 | TAB #3 | &lt;TAB #4&gt; |
+---------------------------------------------
+| LOCAL | |
+|---------------------| |
+| BASE | MERGED |
+|---------------------| |
+| REMOTE | |
+---------------------------------------------</code></pre>
+</div></div>
+<div class="paragraph"><p>Note how in the third tab definition we need to use parenthesis to make <code>,</code>
+have precedence over <code>/</code>.</p></div>
+</div></div>
+</li>
+</ul></div>
+</div>
+<div class="sect3">
+<h4 id="_variants">Variants</h4>
+<div class="paragraph"><p>Instead of <code>--tool=vimdiff</code>, you can also use one of these other variants:</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+<code>--tool=gvimdiff</code>, to open gVim instead of Vim.
+</p>
+</li>
+<li>
+<p>
+<code>--tool=nvimdiff</code>, to open Neovim instead of Vim.
+</p>
+</li>
+</ul></div>
+<div class="paragraph"><p>When using these variants, in order to specify a custom layout you will have to
+set configuration variables <code>mergetool.gvimdiff.layout</code> and
+<code>mergetool.nvimdiff.layout</code> instead of <code>mergetool.vimdiff.layout</code></p></div>
+<div class="paragraph"><p>In addition, for backwards compatibility with previous Git versions, you can
+also append <code>1</code>, <code>2</code> or <code>3</code> to either <code>vimdiff</code> or any of the variants (ex:
+<code>vimdiff3</code>, <code>nvimdiff1</code>, etc&#8230;) to use a predefined layout.
+In other words, using <code>--tool=[g,n,]vimdiffx</code> is the same as using
+<code>--tool=[g,n,]vimdiff</code> and setting configuration variable
+<code>mergetool.[g,n,]vimdiff.layout</code> to&#8230;</p></div>
+<div class="ulist"><ul>
+<li>
+<p>
+<code>x=1</code>: <code>"@LOCAL, REMOTE"</code>
+</p>
+</li>
+<li>
+<p>
+<code>x=2</code>: <code>"LOCAL, MERGED, REMOTE"</code>
+</p>
+</li>
+<li>
+<p>
+<code>x=3</code>: <code>"MERGED"</code>
+</p>
+</li>
+</ul></div>
+<div class="paragraph"><p>Example: using <code>--tool=gvimdiff2</code> will open <code>gvim</code> with three columns (LOCAL,
+MERGED and REMOTE).</p></div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
<h2 id="_git">GIT</h2>
<div class="sectionbody">
<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
@@ -1047,7 +1326,7 @@ are successfully merged.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2021-03-18 23:59:50 PDT
+ 2022-05-10 17:54:15 PDT
</div>
</div>
</body>
diff --git a/git-mergetool.txt b/git-mergetool.txt
index e587c7763..f784027bc 100644
--- a/git-mergetool.txt
+++ b/git-mergetool.txt
@@ -101,6 +101,7 @@ success of the resolution after the custom tool has exited.
CONFIGURATION
-------------
+:git-mergetool: 1
include::config/mergetool.txt[]
TEMPORARY FILES
@@ -113,6 +114,13 @@ Setting the `mergetool.keepBackup` configuration variable to `false`
causes `git mergetool` to automatically remove the backup as files
are successfully merged.
+BACKEND SPECIFIC HINTS
+----------------------
+
+vimdiff
+~~~~~~~
+include::mergetools/vimdiff.txt[]
+
GIT
---
Part of the linkgit:git[1] suite
diff --git a/howto/coordinate-embargoed-releases.html b/howto/coordinate-embargoed-releases.html
index c2c887905..d93537a7c 100644
--- a/howto/coordinate-embargoed-releases.html
+++ b/howto/coordinate-embargoed-releases.html
@@ -873,7 +873,7 @@ Thanks,
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-06 09:59:06 PDT
+ 2022-05-10 17:54:44 PDT
</div>
</div>
</body>
diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html
index 23da56106..841e55d5b 100644
--- a/howto/keep-canonical-history-correct.html
+++ b/howto/keep-canonical-history-correct.html
@@ -938,7 +938,7 @@ tip of your <em>master</em> again and redo the two merges:</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-06 09:59:06 PDT
+ 2022-05-10 17:54:44 PDT
</div>
</div>
</body>
diff --git a/howto/maintain-git.html b/howto/maintain-git.html
index 90eb75882..f3f6d45fc 100644
--- a/howto/maintain-git.html
+++ b/howto/maintain-git.html
@@ -1469,7 +1469,7 @@ $ git update-ref -d $mf/ai/topic</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-06 09:59:06 PDT
+ 2022-05-10 17:54:44 PDT
</div>
</div>
</body>
diff --git a/howto/new-command.html b/howto/new-command.html
index a2b485f83..3d71cf27a 100644
--- a/howto/new-command.html
+++ b/howto/new-command.html
@@ -863,7 +863,7 @@ letter [PATCH 0/n].
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-06 09:59:04 PDT
+ 2022-05-10 17:54:42 PDT
</div>
</div>
</body>
diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html
index cd2658469..83273a33d 100644
--- a/howto/rebase-from-internal-branch.html
+++ b/howto/rebase-from-internal-branch.html
@@ -895,7 +895,7 @@ the #1' commit.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-06 09:59:06 PDT
+ 2022-05-10 17:54:44 PDT
</div>
</div>
</body>
diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html
index a4e6b45fd..856d853a4 100644
--- a/howto/rebuild-from-update-hook.html
+++ b/howto/rebuild-from-update-hook.html
@@ -847,7 +847,7 @@ This is still crude and does not protect against simultaneous
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-06 09:59:06 PDT
+ 2022-05-10 17:54:43 PDT
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html
index 469efed8d..674394308 100644
--- a/howto/recover-corrupted-blob-object.html
+++ b/howto/recover-corrupted-blob-object.html
@@ -880,7 +880,7 @@ thing.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-06 09:59:06 PDT
+ 2022-05-10 17:54:43 PDT
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html
index 98b152234..338897853 100644
--- a/howto/recover-corrupted-object-harder.html
+++ b/howto/recover-corrupted-object-harder.html
@@ -1189,7 +1189,7 @@ int main(int argc, char **argv)
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-06 09:59:06 PDT
+ 2022-05-10 17:54:43 PDT
</div>
</div>
</body>
diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html
index fd27dd777..b55dd59a0 100644
--- a/howto/revert-a-faulty-merge.html
+++ b/howto/revert-a-faulty-merge.html
@@ -1025,7 +1025,7 @@ P---o---o---M---x---x---W---x---M2
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-06 09:59:05 PDT
+ 2022-05-10 17:54:43 PDT
</div>
</div>
</body>
diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html
index 549eb2391..e921681ac 100644
--- a/howto/revert-branch-rebase.html
+++ b/howto/revert-branch-rebase.html
@@ -907,7 +907,7 @@ Committed merge 7fb9b7262a1d1e0a47bbfdcbbcf50ce0635d3f8f
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-06 09:59:04 PDT
+ 2022-05-10 17:54:42 PDT
</div>
</div>
</body>
diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html
index f19f957fb..e2bdb73f4 100644
--- a/howto/separating-topic-branches.html
+++ b/howto/separating-topic-branches.html
@@ -841,7 +841,7 @@ o---o"master"</code></pre>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-06 09:59:05 PDT
+ 2022-05-10 17:54:43 PDT
</div>
</div>
</body>
diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html
index 93404dc9b..b44b592da 100644
--- a/howto/setup-git-server-over-http.html
+++ b/howto/setup-git-server-over-http.html
@@ -1071,7 +1071,7 @@ help diagnosing the problem, but removes security checks.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-06 09:59:05 PDT
+ 2022-05-10 17:54:43 PDT
</div>
</div>
</body>
diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html
index a3784a383..e28f89d7e 100644
--- a/howto/update-hook-example.html
+++ b/howto/update-hook-example.html
@@ -930,7 +930,7 @@ that JC can make non-fast-forward pushes on it.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-06 09:59:05 PDT
+ 2022-05-10 17:54:43 PDT
</div>
</div>
</body>
diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html
index 69043dbf6..a22a76870 100644
--- a/howto/use-git-daemon.html
+++ b/howto/use-git-daemon.html
@@ -791,7 +791,7 @@ a good practice to put the paths after a "--" separator.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-06 09:59:05 PDT
+ 2022-05-10 17:54:42 PDT
</div>
</div>
</body>
diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html
index 885144402..e4a666015 100644
--- a/howto/using-merge-subtree.html
+++ b/howto/using-merge-subtree.html
@@ -848,7 +848,7 @@ Please note that if the other project merges from you, then it will
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-06 09:59:05 PDT
+ 2022-05-10 17:54:42 PDT
</div>
</div>
</body>
diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html
index dee2799fd..1c11ab78e 100644
--- a/howto/using-signed-tag-in-pull-request.html
+++ b/howto/using-signed-tag-in-pull-request.html
@@ -952,7 +952,7 @@ as part of the merge commit.</p></div>
<div id="footer">
<div id="footer-text">
Last updated
- 2022-05-06 09:59:05 PDT
+ 2022-05-10 17:54:42 PDT
</div>
</div>
</body>
diff --git a/mergetools-diff.txt b/mergetools-diff.txt
index c685056e6..a2876794f 100644
--- a/mergetools-diff.txt
+++ b/mergetools-diff.txt
@@ -1,33 +1,24 @@
-* araxis
-* bc
-* bc3
-* bc4
-* codecompare
-* deltawalker
-* diffmerge
-* diffuse
-* ecmerge
-* emerge
-* examdiff
-* guiffy
-* gvimdiff
-* gvimdiff1
-* gvimdiff2
-* gvimdiff3
-* kdiff3
-* kompare
-* meld
-* nvimdiff
-* nvimdiff1
-* nvimdiff2
-* nvimdiff3
-* opendiff
-* p4merge
-* smerge
-* tkdiff
-* vimdiff
-* vimdiff1
-* vimdiff2
-* vimdiff3
-* winmerge
-* xxdiff
+`araxis`;; Use Araxis Merge (requires a graphical session)
+`bc`;; Use Beyond Compare (requires a graphical session)
+`bc3`;; Use Beyond Compare (requires a graphical session)
+`bc4`;; Use Beyond Compare (requires a graphical session)
+`codecompare`;; Use Code Compare (requires a graphical session)
+`deltawalker`;; Use DeltaWalker (requires a graphical session)
+`diffmerge`;; Use DiffMerge (requires a graphical session)
+`diffuse`;; Use Diffuse (requires a graphical session)
+`ecmerge`;; Use ECMerge (requires a graphical session)
+`emerge`;; Use Emacs' Emerge
+`examdiff`;; Use ExamDiff Pro (requires a graphical session)
+`guiffy`;; Use Guiffy's Diff Tool (requires a graphical session)
+`gvimdiff`;; Use gVim (requires a graphical session)
+`kdiff3`;; Use KDiff3 (requires a graphical session)
+`kompare`;; Use Kompare (requires a graphical session)
+`meld`;; Use Meld (requires a graphical session)
+`nvimdiff`;; Use Neovim
+`opendiff`;; Use FileMerge (requires a graphical session)
+`p4merge`;; Use HelixCore P4Merge (requires a graphical session)
+`smerge`;; Use Sublime Merge (requires a graphical session)
+`tkdiff`;; Use TkDiff (requires a graphical session)
+`vimdiff`;; Use Vim
+`winmerge`;; Use WinMerge (requires a graphical session)
+`xxdiff`;; Use xxdiff (requires a graphical session)
diff --git a/mergetools-merge.txt b/mergetools-merge.txt
index cb538a2b9..f34a03f27 100644
--- a/mergetools-merge.txt
+++ b/mergetools-merge.txt
@@ -1,33 +1,33 @@
-* araxis
-* bc
-* bc3
-* bc4
-* codecompare
-* deltawalker
-* diffmerge
-* diffuse
-* ecmerge
-* emerge
-* examdiff
-* guiffy
-* gvimdiff
-* gvimdiff1
-* gvimdiff2
-* gvimdiff3
-* kdiff3
-* meld
-* nvimdiff
-* nvimdiff1
-* nvimdiff2
-* nvimdiff3
-* opendiff
-* p4merge
-* smerge
-* tkdiff
-* tortoisemerge
-* vimdiff
-* vimdiff1
-* vimdiff2
-* vimdiff3
-* winmerge
-* xxdiff
+`araxis`;; Use Araxis Merge (requires a graphical session)
+`bc`;; Use Beyond Compare (requires a graphical session)
+`bc3`;; Use Beyond Compare (requires a graphical session)
+`bc4`;; Use Beyond Compare (requires a graphical session)
+`codecompare`;; Use Code Compare (requires a graphical session)
+`deltawalker`;; Use DeltaWalker (requires a graphical session)
+`diffmerge`;; Use DiffMerge (requires a graphical session)
+`diffuse`;; Use Diffuse (requires a graphical session)
+`ecmerge`;; Use ECMerge (requires a graphical session)
+`emerge`;; Use Emacs' Emerge
+`examdiff`;; Use ExamDiff Pro (requires a graphical session)
+`guiffy`;; Use Guiffy's Diff Tool (requires a graphical session)
+`gvimdiff`;; Use gVim (requires a graphical session) with a custom layout (see `git help mergetool`'s `BACKEND SPECIFIC HINTS` section)
+`gvimdiff1`;; Use gVim (requires a graphical session) with a 2 panes layout (LOCAL and REMOTE)
+`gvimdiff2`;; Use gVim (requires a graphical session) with a 3 panes layout (LOCAL, MERGED and REMOTE)
+`gvimdiff3`;; Use gVim (requires a graphical session) where only the MERGED file is shown
+`kdiff3`;; Use KDiff3 (requires a graphical session)
+`meld`;; Use Meld (requires a graphical session) with optional `auto merge` (see `git help mergetool`'s `CONFIGURATION` section)
+`nvimdiff`;; Use Neovim with a custom layout (see `git help mergetool`'s `BACKEND SPECIFIC HINTS` section)
+`nvimdiff1`;; Use Neovim with a 2 panes layout (LOCAL and REMOTE)
+`nvimdiff2`;; Use Neovim with a 3 panes layout (LOCAL, MERGED and REMOTE)
+`nvimdiff3`;; Use Neovim where only the MERGED file is shown
+`opendiff`;; Use FileMerge (requires a graphical session)
+`p4merge`;; Use HelixCore P4Merge (requires a graphical session)
+`smerge`;; Use Sublime Merge (requires a graphical session)
+`tkdiff`;; Use TkDiff (requires a graphical session)
+`tortoisemerge`;; Use TortoiseMerge (requires a graphical session)
+`vimdiff`;; Use Vim with a custom layout (see `git help mergetool`'s `BACKEND SPECIFIC HINTS` section)
+`vimdiff1`;; Use Vim with a 2 panes layout (LOCAL and REMOTE)
+`vimdiff2`;; Use Vim with a 3 panes layout (LOCAL, MERGED and REMOTE)
+`vimdiff3`;; Use Vim where only the MERGED file is shown
+`winmerge`;; Use WinMerge (requires a graphical session)
+`xxdiff`;; Use xxdiff (requires a graphical session)