mergetool: add per-tool support and overrides for the hideResolved flag
authorSeth House <redacted>
Tue, 9 Feb 2021 20:07:12 +0000 (13:07 -0700)
committerJunio C Hamano <redacted>
Tue, 9 Feb 2021 22:09:16 +0000 (14:09 -0800)
commit9d9cf230317f7fe7cb153f61b537e6e9bef22e3b
treee9af48e455604339c03366d3c868d2eefc735593
parentde8dafbada811bc1bc8e1288541931f3c5406231
mergetool: add per-tool support and overrides for the hideResolved flag

Add a per-tool override flag so that users may enable the flag for one
tool and disable it for another by setting
`mergetool.<tool>.hideResolved` to `false`.

In addition, the author or maintainer of a mergetool may optionally
override the default `hideResolved` value for that mergetool. If the
`mergetools/<tool>` shell script contains a `hide_resolved_enabled`
function it will be called when the mergetool is invoked and the return
value will be used as the default for the `hideResolved` flag.

    hide_resolved_enabled () {
        return 1
    }

Disabling may be desirable if the mergetool wants or needs access to the
original, unmodified 'LOCAL' and 'REMOTE' versions of the conflicted
file. For example:

- A tool may use a custom conflict resolution algorithm and prefer to
  ignore the results of Git's conflict resolution.
- A tool may want to visually compare/constrast the version of the file
  from before the merge (saved to 'LOCAL', 'REMOTE', and 'BASE') with
  Git's conflict resolution results (saved to 'MERGED').

Helped-by: Johannes Sixt <redacted>
Helped-by: Junio C Hamano <redacted>
Signed-off-by: Seth House <redacted>
Signed-off-by: Junio C Hamano <redacted>
Documentation/config/mergetool.txt
git-mergetool--lib.sh
git-mergetool.sh
git clone https://git.99rst.org/PROJECT