[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: Bert Huijben <rhuijben_at_sharpsvn.net>
Date: Fri, 30 Oct 2009 12:11:02 +0100

> -----Original Message-----
> From: Daniel Näslund [mailto:daniel_at_longitudo.com]
> Sent: vrijdag 30 oktober 2009 8:51
> To: dev_at_subversion.tigris.org
> Subject: Re: [PATCH] Fix failing three-way diff for properties
> On Thu, Oct 29, 2009 at 11:50:56PM +0100, Daniel Näslund 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.
> > ]]]
> [...]
> >
> > I haven't run make check yet. Will do it first thing tomorrow.
> make check passed!
> 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 :)

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.

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.


Received on 2009-10-30 12:11:33 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.