Julian Foad wrote:
> * There are separate "merge-cmd" and "diff3-cmd" config settings,
> which both run a merge tool, perhaps in different ways, in different
> situations. I think "diff3-cmd" is run before deciding whether there is
> a conflict, and then "merge-cmd" is run if the user selects "Launch
> external merge tool".
I cannot find any reference to a "merge-tool" config setting in the
Subversion source code.
I believe we have a terminology problem here. By "merge tool" I mean
the thing that is specified by the "merge-tool-cmd" config setting (or
the "SVN_MERGE" environment variable).
The thing specified by the "diff3-cmd" setting should not be referred to
as a "merge tool." It has different semantics and constraints than the
thing specified by the "merge-cmd" config setting and referring to it
(or the thing specified by the "diff-cmd") as a "merge tool" will lead
to ambiguity and confusion.
> * The external diff tool has the same problem.
The external diff3 and external diff tools have different constraints
than the external merge tool. I believe one of the additional
constraints is that the arguments must be usable by GNU diff3 and GNU
diff, respectively. My proposed patch does not change anything with
respect to the external diff3 or external diff tools.
> * The "diff" options in interactive conflict resolution print things
> like "+++ tmp/tmpfile.tmp" in their headers. They could benefit from
> knowing the real name of the text that it's diffing.
The existing code currently uses "-L" switches to pass labels into the
external diff3 and external diff tools. I don't think those labels have
relative path information, but I doubt we really want them to.
Received on 2009-01-13 08:28:38 CET