Branko Čibej wrote: > On 18.01.2012 14:45, Julian Foad wrote: >>> A@1---r4---r5---r6---r7----------------r11-----------> >>> |\ ^ | >>> | \ | | >>> | \ reintegrate | >>> | V | | >>> | A_COPY_2-----------------r9---r10--- | >>> | ^ sync merge >>> | / | >>> | cherry-pick merge of r8 | >>> V / V >>> A_COPY-------------------r8-------------------------> >> >> Thanks for this good example of a more complex use case. I've included >> it in <http://wiki.apache.org/subversion/KeepingReintegratedBranchAlive> >> and written up a discussion of the options there. >> >> What do we want in this case? The options are basically:
(To be sure we're talking about the same thing, here I'm talking about how Subversion decides whether to merge the change "r11" from A onto A_COPY.) >> (1) try to merge (as we do now), despite knowing it will conflict; > > Actually, you know that it will not conflict, unless r9 or r10 > introduced changes in the same place as r8. Otherwise the code is the > same and diff3 should skip that part, yes? No; I mean in general it will conflict. Yes there are certain simple changes that the three-way text merge function will detect as "looks like that change has already been made here" and auto-resolve it as a no-op, but that's beside the point. [sorry, can't reply to the rest just now] - Julian