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

Re: [PATCH] Fix failing three-way diff for properties

From: Daniel Näslund <daniel_at_longitudo.com>
Date: Sat, 31 Oct 2009 17:37:42 +0100

On Fri, Oct 30, 2009 at 12:11:02PM +0100, Bert Huijben wrote:
> > > [[[
> > > Fix failing three way diff for properties when invoking diff-full
> > (df)
> > > in the interactive conflict resolutioner.
> > >
> > > * subversion/libsvn_wc/util.c
> > > (svn_wc__cd2_to_cd): All the usual files needed in a three way diff
> > is
> > > available for properties as well as markers for binary format and
> > > mime.
> > >
> > > * subversion/svn/conflict-callbacks.c
> > > (svn_cl__conflict_handler): Set diff_allowed only if desc-
> > >is_binary
> > > is false.
> > > ]]]
> >
> > Still having some doubts about the way I set diff_allowed in
> > svn_cl__conflict_handler(). It affects text conflicts too.
> In WC-NG we will store all versions of all conflicted properties
> inside the database.. so you can just handle them one at a time via
> the resolve apis in your own preferred order and even non
> interactively. (No need to create 3 * 10 .prej files if 10 properties
> are conflicted :)

That's nice!

> Via the new conflict code you can see that a node is conflicted and
> you can then retrieve more details, like which properties with their
> values, if the text is conflicted and if it is tree conflicted. And
> you can just retrieve the data directly instead of relying on the data
> stored in the user part of the working copy.

A good thing. Unfortunately this leaves me with nothing left to do. I
was hoping that I could fix the mime_type and is_binary flag of
svn_wc_conflict_description_t. But I assume that the mime_type of a
property will be stored in the database and accessed through the
functions in libsvn_wc/conflicts.c. I took a peek and saw a lot of not
yet implemented functions.

> This change will also allow sharing the same conflict resolve handler
> code for interactive and non interactive handlers.
> (For backwards compatibility we will call old resolvers like we always
> did, but new style resolvers will see all information at once).
> We still need to design some way to make all this available in the
> commandline client. One way would be to make 'svn resolve PATH' run
> the interactive conflict handler on all the remaining parts of a
> conflict, but another way to see the conflict-version properties in a
> non interactive way would be nice.

What about svn di --conflict PATH?


Received on 2009-10-31 17:37:55 CET

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.