On Tuesday 24 February 2004 14:31, Ben Collins-Sussman wrote:
> I don't think our diff3 was designed to be super flexible with various
> 3rd party merging tools. Originally, svn *required* an external diff3,
> and our function svn_io_run_diff3() was only written for that purpose.
> After Sander wrote a homegrown libsvn_diff, using external diff/diff3
> became optional.
hi ben
note a little detail: xxdiff does not actually compute the diffs itself. it
invokes GNU diff under the hood. if the libsvn_diff() function actually
implements a better diff algorithm, i could make xxdiff read that instead of
doing the diffs itself. xxdiff would then need to be fed the two or three
files and the diff output. i never had to implement that, but it would not
be too hard.
that was not needed for ClearCase integration: in complicated cases
ClearCase's cleardiff generates better (i.e. smaller, or less) hunks than GNU
diff, and users wanted to use it, but since cleardiff outputs POSIX diff
format xxdiff already parses that, ClearCase users would simply tell xxdiff
(in ~/.xxdiffrc) to invoke cleardiff instead of GNU diff. so in this case
xxdiff still ends up spawning diff and reading output from a pipe. i did not
have to change a thing.
i guess the question comes down to who invokes xxdiff vs. subversion commands:
either one writes a script that figures out what has changed from 'svn
status' output and then invokes many xxdiff on files separately, or we let
subversion figure out all the changes itself (better IMO) and it itself
invokes xxdiff when needed.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Tue Feb 24 20:48:25 2004