On Thu, Apr 19, 2012 at 12:57 PM, Julian Foad
> Branko Čibej wrote:
>> Julian Foad wrote:
>>> To get symmetric behaviour, the problem is it's freakin' hard to
>>> untangle the subtree support and the mixed-rev support and the
>>> missing-subtree support and everything from the basic merge algorithm
>>> outline, in the existing code. And the problem is not so much at a
>>> coding level, but rather a matter of understanding what, in fact, the
>>> semantics are that we're intending to implement currently.
>> 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. However, I *can* imagine scenarios where the user has a large chunk of WC switched, and now wants to merge something into the whole WC knowing that it won't in fact touch the switched part. That seems like a reasonable thing to support: untouched paths being switched. I haven't yet thought of a use case for switched paths that are touched by the merge.
> 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.
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.
> - Julian
Received on 2012-04-19 20:30:03 CEST