[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Subversion conflict resolution

From: Sjoerd Tieleman <Sjoerd.Tieleman_at_phil.uu.nl>
Date: 2005-11-21 15:02:11 CET

On Nov 13, 2005, at 15:36 , kfogel@collab.net wrote:

> Sjoerd Tieleman <Sjoerd.Tieleman@phil.uu.nl> writes:
>> On 12-nov-2005, at 7:02, kfogel@collab.net wrote:
>>
>> But would there be any interest in such features in the Subversion
>> client? As I understood from Jim Blandy the functionality is just
>> there to allow people to use their own scripts for interesting file
>> types. Also I understood from Garrett Rooney that the functionality
>> (using --diff-cmd and --diff3-cmd) is kind of "half-assed" and that
>> there is no mechanism (yet) to do "interesting" diffs/merges based on
>> mime-types (say: application/xml). Or perhaps this functionality
>> should be part of some third-party Subversion client and not in the
>> "official" Subversion client?
>
> I think the key line in Jim's document is:
>
> Since all merging takes place on the client, these "smart merges"
> should be implemented as a client-side plug-in.

[...]

> There have been some recent threads on the problems of --diff-cmd,
> --diff3-cmd, and Subversion's [mis]interpretation of svn:mime-type. I
> don't have the thread URLs handy (sorry), but I think the place to
> start would be there, to see what, if anything, has already been
> analyzed.

A quick search gives me some discussion from around July 2004:

[ custom diff tools, a question is asked whether one can select a diff
tool based on the svn:mime-type property ]
***
Branko ─îibej:

Yes, of course. The "diff tool" could be a script that looks at the SVN
file properties in the working copy (via "svn propget svn:mime-type,"
for example). However, note that this would work when explicitly calling
invoking "svn diff". It would _not_ magically make Subversion merge
differences in binary files using your tool during "svn update", because
Subversion's notion of when a file is binary is hard-coded, and if it
thinks a file is binary, it won't invoke diff3 to do the merge.
***

So, this is kind of a bummer, because as I understand, Subversion sees
everything not marked as "text/*" as a binary file, and as such diff
tools are not called. So, this means that even if you specify in your
Subversion config file that your "special diff script" should always be
used, you are still left out in the cold for files with other types
(such as "application/xml"). So, for Subversion to be able to do this,
the hard-coded notion of not *ever* performing a diff/merge when we have
something other than "text/*" should have to be replaced with something
more elegent (which could be turned off by default and only turned on
by adding something to your config file, at the users discretion), but
which allows "experienced" users to perform diffs/merges on anything
other than text types.

Sjoerd.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Nov 21 15:04:22 2005

This is an archived mail posted to the Subversion Dev mailing list.