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