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

Re: [PATCH] Tree conflicts - revert and resolve per victim

From: Stephen Butler <sbutler_at_elego.de>
Date: Wed, 05 Nov 2008 15:57:53 +0100

Quoting "Neels J. Hofmeyr" <neels_at_elego.de>:

> Julian Foad wrote:
>> Tree conflict fans,
>> FYI, here is the patch I've been working on since yesterday to get
>> "revert" and "resolve" acting per victim.
>> The current state of progress is that "revert" works fully, and
>> "resolve" works for versioned victims but not for unversioned victims,
> Cool!
>> leaving no way of marking an unversioned victim as resolved.
>> TO DO: I want to make the recursion into unversioned victims be part of
>> svn_wc_walk_entries3(). In the present patch I just implemented it in
>> revert_internal() which does the recursion long-hand. The "resolve"
>> implementation, on the other hand, does use svn_wc_walk_entries3().
> So you're planning to also use svn_wc_walk_entries3() for revert? Sounds
> good, from as little as what I know. I'm not looking at your patch too
> closely now, but it looks sane on a quick scan.

Info also uses svn_wc_walk_entries3(), but not (yet) correctly.

I hacked svn info to support nonexistent targets that are tree
conflict victims. Unfortunately, 'svn info -R' reports only tree
conflicts that have entries (i.e., that exist or are missing).
I beefed up info_tests.py to test that (XFail for now) in r34069.

FWIW, svn status has its own "long-hand" recursive function for
detecting missing/nonexistent victims. It doesn't use

> As for me, I'm going to look at tree_conflict notification in repos_diff.c,
> making sure that detected tree-conflicts aren't overwritten by subsequent
> callback calls (Thanks for finding it, Julian!).
> I'm also planning to change the diff callbacks so that property changes on
> directories are reported the same as for files, i.e. that only one callback
> call will be issued for Add-Dir-With-Props, instead of currently two. This
> looks like a good change because files have been changed to be handled that
> way, plus it is a key API change that enables diff --summarize using the
> diff callbacks, while being (hopefully) simple and generally independent.
> AFAICT, it's the only API change that stands in the way of implementing
> dirs_same_p(). So I guess it's worth giving it a little attention now.


> So, my complete to-do list:
> - Repos_diff.c and *tree_conflicted. (above)
> - Change diff callbacks to also pass props on dir-add. (above)
> - Enhance deep_trees tests to include prop changes.
> - Set up a test that ensures lack of false tree-conflicts (particularly
> in dir delete upon merge, maybe others).
> - Identify and resolve single tc-failures at a time, in update and merge.

I'm working on svn resolve (your last item) currently. I
assume you're attacking this list from the top down.


Stephen Butler | Software Developer
elego Software Solutions GmbH
Gustav-Meyer-Allee 25 | 13355 Berlin | Germany
fon: +49 30 2345 8696 | mobile: +49 163 25 45 015
fax: +49 30 2345 8695 | http://www.elegosoft.com
Geschäftsführer: Olaf Wagner | Sitz der Gesellschaft: Berlin
Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-11-05 15:58:10 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.