Overtly inventory all known use-cases of 3-way and 4-way merging and rebasing. Add them as modes-of-operation on opening dialog.
Currently, Meld supports only a subset of the use-cases that kdiff3 and (more to the point) Araxis Merge support. For inter-branch merge of prebugfix-to-postbugfix along an origin branch to destination wavefront-of-development along another branch where those 2 branches have a common ancestor as point of commonality of the 2 branches (hence 4-way merging to a 5th output merge-result file:
- origin-branch prebugfix,
- origin-branch postbugfix,
- common ancestor,
- destination-branch prebugfix wavefront,
- output-only: destination-branch postbugfix as destination-branch wavefront henceforth),
both Perforce integration and git integration expect such a 4-way merge that Meld does not currently support.
A variant of the 4-way merge above is to lack the common ancestor, then infer what that common ancestor would have been from the commonality between the origin-branch prebugfix and the destination-branch prebugfix wavefront. It appears that this is what kdiff3 does to support the use-case above via only a 3-way merge.
Of course, there is the simple 3-way merge without respect to the deltaing on an origin branch being applied to the destination branch. In this use-case (which Meld already supports) the 3 peers are considered co-equal without any particular historical or progressing-wavefront relationship between them.
But there may be other use-cases too. Each needs to inventoried. Each needs to have a choice on the opening dialog of Meld. Each needs an image depicting it pictorially.