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

Re: Problems with property conflict callback

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: 2007-10-25 08:35:59 CEST

On 10/25/07, Ben Collins-Sussman <sussman@gmail.com> wrote:
> On 10/24/07, Mark Phippard <markphip@gmail.com> wrote:
> > We are looking at supporting this in Subclipse. We are finding when
> > the callback is called we are just getting paths to two files, the
> > "myPath" and "theirPath". There is no basePath and no mergedPath.
> > This begs a couple questions:
> >
> > 1) How can we do a 3-way diff without a base version of the property?
> You can't. This sounds like a bug; can you give me a reproduction case?

Use my script I sent to show that the conflict callback wasn't used
for property conflicts, then change it to first commit the property
change in wc2, then add another property on wc2\file to get the local
modification again.
(sorry, don't have access to my script right now, since I'm in the
office and not at home)

But yes, I also discovered that the base path is always NULL (not set).

I've made TSVN just call the two-file diff in that case, showing
"theirs" and "mine". Not perfect, but it works.

> > 2) If we do #1, I do not see how we would tell SVN where the merged
> > results are located for it to use.
> If your conflict-callback decides to do the merge itself, it needs to
> create a tmpfile somewhere with the merged result, then pass a path to
> that tmpfile back in the conflct_result_t. (You also need to
> 'choose_merged' in the conflict_result_t.)

Is it really necessary to create a new tmpfile somewhere? The
properties already are passed in temp files, so I (for now, depends on
your answer) just use the "mine" property temp file and write the
resolved stuff in there, then pass the path of that temp file back in
That should work too? Or do you need the temp files unchanged? It
won't be too much work to create a new, separate temp file to pass
back - I just used the fastest way.

> (This is true of both text and prop conflicts.)

For text conflicts I found that the "merged_file" is used when
'choose_merged' is passed back - no need to create a tmp file there.


  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Oct 25 08:36:10 2007

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