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

Re: Switching

From: Travis Brown <travisb_at_travisbrown.ca>
Date: Sun, 25 Aug 2013 15:44:05 -0700

On Sun, Aug 25, 2013 at 11:46:11AM +0200, Stefan Sperling claimed:
>Looking at just one use case is not going to help us in the long term.
>And I don't think we should hard-code conflict resolution behaviour in
>the update/switch/merge logic.
>
>During 1.8 development, I did experiment with hard-coded conflict
>resolution choices on several occasions (see, for example,
>http://svn.apache.org/r1161219). Those changes got shot down during
>peer review, because there were cases where the hard-coded behaviour
>was problematic. More importantly, intertwining conflict resolution
>with the update/merge logic tends to make the code overly complicated
>and fragile once we look past trivial conflict cases.
>
>So our current approach is to always flag conflicts during update and
>merge, and then let 'svn resolve' deal with these conflicts in a
>separate step. I would consider your patch if it made 'svn resolve'
>deal with the tree conflict raised on the obstructing directory,
>rather than changing how 'svn switch' behaves now.
>
>We've spent a lot of time on detecting tree conflicts, and in 1.8 we've
>also started to improve the interactive menu for tree conflicts involving
>local moves. I'd like to see further improvements there, even if it's
>harder than patching up a few use cases. I think we'll get a more
>flexible and reliable system in the long term this way.

It's nice to finally see a concrete, technical objection.

I took a brief look at the resolution code and found it to be a twisty
maze of callbacks and workqueues. There didn't appear to be any existing
infrastructure or obvious way to resolve the tree conflict on the
directory and then continue with whatever operation caused the conflict
in the first place. This isn't my itch so I'm uninterested in spending
any more time than I have already investigating it. IMHO any solution to
this problem which requires any further user input, whether a manual
conflict resolution or running a second command, is a waste of time.
What I saw in my brief look indicates that it'll be a significant effort
to accomplish this level of polish with the existing code structure.

Since my patch has legitimate objections and I'm not willing to
implement the supported alternative I'll let this drop now.

-- 
Travis

  • application/pgp-signature attachment: stored
Received on 2013-08-26 00:45:03 CEST

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