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

Re: Tree conflicts - see what happens in the current state

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Wed, 08 Oct 2008 10:47:27 +0100

On Tue, 2008-10-07 at 22:49 +0100, Julian Foad wrote:
> On Mon, 2008-10-06 at 13:43 +0200, Stephen Butler wrote:
> > On the svn side, we'll need the update/merge/etc. commands to skip tree
> > conflict victims. I'm afraid that will break a lot of other tests that
> > we've discussed already, the ones that create tree conflicts. But I'm no
> > stranger to patching tests.
> >
> > Does this sound like a reasonable interim goal?
>
> Yes, that's perhaps the main coding task we need to do now.

Here's what I think we need to do.

After placing a directory into conflict in dir_open(), all edits in the
victim sub-tree must be inhibited until the corresponding dir_close().
All of the normal editor call-backs can be called by the edit driver
within this victim sub-tree, so they all must recognise that the edit
drive is in this state and skip their normal work. In dir_close(), if
closing _this_ victim dir (rather than one of its sub-dirs), that's when
we get out of this "skipping" state.

Under edit drive rules, there can only be one such victim sub-tree being
processed (skipped) at any time, so there only needs to be one flag
saying "we're currently processing within a victim sub-tree", and one
way to identify which directory is the root of the sub-tree being
skipped. There does not need to be a list or tree of such flags.

A way to implement this, I think, is with a flag in the main edit baton
saying "we're currently skipping", and a flag in the directory baton
saying "this is the root of the sub-tree being skipped". All edit
functions check the former, and the close_dir() function resets both
flags when it finds the latter set.

- 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-10-08 11:47:53 CEST

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