[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: Julian Foad <julianfoad_at_btopenworld.com>
Date: Wed, 05 Nov 2008 19:26:15 +0000

On Wed, 2008-11-05 at 15:57 +0100, Stephen Butler wrote:
> 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.

Yes, I am. I'm implementing an augmented variant of walk_entries now,
and then I'll make "resolve" and "revert" and "info" and "status" use
it.

> 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.

Thanks for the test, Steve.

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

Same for revert at the moment.

> > 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.
>
> Cool!

Yes.

> > 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.

Steve, could you describe what you're aiming to make happen?

- Julian

---------------------------------------------------------------------
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 20:26:34 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.