| 1 | `mergetool.<tool>.path`:: |
| 2 | Override the path for the given tool. This is useful in case |
| 3 | your tool is not in the `$PATH`. |
| 4 | |
| 5 | `mergetool.<tool>.cmd`:: |
| 6 | Specify the command to invoke the specified merge tool. The |
| 7 | specified command is evaluated in shell with the following |
| 8 | variables available: `BASE` is the name of a temporary file |
| 9 | containing the common base of the files to be merged, if available; |
| 10 | `LOCAL` is the name of a temporary file containing the contents of |
| 11 | the file on the current branch; `REMOTE` is the name of a temporary |
| 12 | file containing the contents of the file from the branch being |
| 13 | merged; `MERGED` contains the name of the file to which the merge |
| 14 | tool should write the results of a successful merge. |
| 15 | |
| 16 | `mergetool.<tool>.hideResolved`:: |
| 17 | Allows the user to override the global `mergetool.hideResolved` value |
| 18 | for a specific tool. See `mergetool.hideResolved` for the full |
| 19 | description. |
| 20 | |
| 21 | `mergetool.<tool>.trustExitCode`:: |
| 22 | For a custom merge command, specify whether the exit code of |
| 23 | the merge command can be used to determine whether the merge was |
| 24 | successful. If this is not set to true then the merge target file |
| 25 | timestamp is checked, and the merge is assumed to have been successful |
| 26 | if the file has been updated; otherwise, the user is prompted to |
| 27 | indicate the success of the merge. |
| 28 | |
| 29 | `mergetool.meld.hasOutput`:: |
| 30 | Older versions of `meld` do not support the `--output` option. |
| 31 | Git will attempt to detect whether `meld` supports `--output` |
| 32 | by inspecting the output of `meld --help`. Configuring |
| 33 | `mergetool.meld.hasOutput` will make Git skip these checks and |
| 34 | use the configured value instead. Setting `mergetool.meld.hasOutput` |
| 35 | to `true` tells Git to unconditionally use the `--output` option, |
| 36 | and `false` avoids using `--output`. |
| 37 | |
| 38 | `mergetool.meld.useAutoMerge`:: |
| 39 | When the `--auto-merge` is given, meld will merge all non-conflicting |
| 40 | parts automatically, highlight the conflicting parts, and wait for |
| 41 | user decision. Setting `mergetool.meld.useAutoMerge` to `true` tells |
| 42 | Git to unconditionally use the `--auto-merge` option with `meld`. |
| 43 | Setting this value to `auto` makes git detect whether `--auto-merge` |
| 44 | is supported and will only use `--auto-merge` when available. A |
| 45 | value of `false` avoids using `--auto-merge` altogether, and is the |
| 46 | default value. |
| 47 | |
| 48 | `mergetool.<variant>.layout`:: |
| 49 | Configure the split window layout for vimdiff's _<variant>_, which is any of `vimdiff`, |
| 50 | `nvimdiff`, `gvimdiff`. |
| 51 | Upon launching `git mergetool` with `--tool=<variant>` (or without `--tool` |
| 52 | if `merge.tool` is configured as _<variant>_), Git will consult |
| 53 | `mergetool.<variant>.layout` to determine the tool's layout. If the |
| 54 | variant-specific configuration is not available, `vimdiff` ' s is used as |
| 55 | fallback. If that too is not available, a default layout with 4 windows |
| 56 | will be used. |
| 57 | ifdef::git-mergetool[] |
| 58 | To configure the layout, see the 'BACKEND SPECIFIC HINTS' section. |
| 59 | endif::[] |
| 60 | ifndef::git-mergetool[] |
| 61 | To configure the layout, see the 'BACKEND SPECIFIC HINTS' section in linkgit:git-mergetool[1]. |
| 62 | endif::[] |
| 63 | |
| 64 | `mergetool.hideResolved`:: |
| 65 | During a merge, Git will automatically resolve as many conflicts as |
| 66 | possible and write the `$MERGED` file containing conflict markers around |
| 67 | any conflicts that it cannot resolve; `$LOCAL` and `$REMOTE` normally |
| 68 | are the versions of the file from before Git's conflict |
| 69 | resolution. This flag causes `$LOCAL` and `$REMOTE` to be overwritten so |
| 70 | that only the unresolved conflicts are presented to the merge tool. Can |
| 71 | be configured per-tool via the `mergetool.<tool>.hideResolved` |
| 72 | configuration variable. Defaults to `false`. |
| 73 | |
| 74 | `mergetool.keepBackup`:: |
| 75 | After performing a merge, the original file with conflict markers |
| 76 | can be saved as a file with a `.orig` extension. If this variable |
| 77 | is set to `false` then this file is not preserved. Defaults to |
| 78 | `true` (i.e. keep the backup files). |
| 79 | |
| 80 | `mergetool.keepTemporaries`:: |
| 81 | When invoking a custom merge tool, Git uses a set of temporary |
| 82 | files to pass to the tool. If the tool returns an error and this |
| 83 | variable is set to `true`, then these temporary files will be |
| 84 | preserved; otherwise, they will be removed after the tool has |
| 85 | exited. Defaults to `false`. |
| 86 | |
| 87 | `mergetool.writeToTemp`:: |
| 88 | Git writes temporary `BASE`, `LOCAL`, and `REMOTE` versions of |
| 89 | conflicting files in the worktree by default. Git will attempt |
| 90 | to use a temporary directory for these files when set `true`. |
| 91 | Defaults to `false`. |
| 92 | |
| 93 | `mergetool.prompt`:: |
| 94 | Prompt before each invocation of the merge resolution program. |
| 95 | |
| 96 | `mergetool.guiDefault`:: |
| 97 | Set `true` to use the `merge.guitool` by default (equivalent to |
| 98 | specifying the `--gui` argument), or `auto` to select `merge.guitool` |
| 99 | or `merge.tool` depending on the presence of a `DISPLAY` environment |
| 100 | variable value. The default is `false`, where the `--gui` argument |
| 101 | must be provided explicitly for the `merge.guitool` to be used. |