Paul Burba wrote:

> On Thu, Apr 19, 2012 at 12:57 PM, Julian Foad wrote:
>>  Branko Čibej wrote:
>>>  By the way, I'm all for removing support for merging into
>>> mixed-revision
>>>  and/or switched-subtree working copies. There's too much room for
>>>  unexpected results in these cases.
>> 
>>  I don't necessarily disagree, but that sounds a bit unsubstantiated.
>> Is there too much "room for unexpected results" because you don't  have
>> a mental model of what to expect?  If I were to figure out and describe
>> some sensible semantics and a use case, might you then change your mind?
>> 
>>  FWIW, I have an inkling of how a mixed-rev target WC should work: it's
>> logically very similar to having different mergeinfo on different subtrees,
>> except that the differences are on the target side of the merge rather than
>> the  source side of the merge.  It requires some care to be sure that the
>> parent-to-child inheritance of mergeinfo in the WC remains valid where base
>> revision numbers differ.
>> 
>>  That said, I can't imagine any valid reason to need to support a 
>> mixed-rev target WC.
>> 
>>  I have thought very little about about how switched subtrees should
>> work [and use cases].
>> 
>>  Maybe Paul can help fill in some of the "how" and "why" gaps here?
> 
> I believe I answered this question already, see:
> http://svn.haxx.se/dev/archive-2012-03/0632.shtml  If that doesn't
> sufficiently answer your questions let me know.

Hi Paul.  Yes, what you wrote there makes sense as to how we handle switched 
subtrees and "why" in a logical sense.  I've just followed up with a reply to 
that email going into a bit more detail.  I feel that with this level of 
functional spec, Switched Subtrees is something I can now add to the Symmetric 
Merge design proposal.

I see there's already a brief statement about sparse WCs too: 
<http://svn.apache.org/repos/asf/subversion/trunk/notes/merge-tracking/func-spec.html#sparse-checkouts>. 
 I'm not clear how the whole 'depth' thing works, though, if you add children 
to a directory that was initially sparse or exclude children from a directory 
that was initially depth non-empty.

Do you have a pointer to some details about how a mixed-rev target WC is 
handled?

I have now added a section "Mixed-Rev, Switched, or Sparse WC" to 
<http://wiki.apache.org/subversion/SymmetricMerge>.


> As to removing support for merging into WCs with switched subtrees,
> let's be clear that this *does* work today (if you think otherwise
> please provide a use-case demonstrating what is broken).  Now maybe we
> want to restrict these types of merges to make further improvements
> possible (e.g. Julian's symmetric merge work), that I won't argue
> against, but I want to be clear that we are making the choice to
> remove some existing functionality as a trade-off in implementing new
> functionality, rather than fixing a broken feature.

Totally clear, yes, if that's what we decide to do.

- Julian

Reply via email to