Return-Path: X-Original-To: apmail-subversion-users-archive@minotaur.apache.org Delivered-To: apmail-subversion-users-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id AC65410239 for ; Sun, 25 Aug 2013 22:44:58 +0000 (UTC) Received: (qmail 65391 invoked by uid 500); 25 Aug 2013 22:44:57 -0000 Delivered-To: apmail-subversion-users-archive@subversion.apache.org Received: (qmail 65336 invoked by uid 500); 25 Aug 2013 22:44:57 -0000 Mailing-List: contact users-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list users@subversion.apache.org Received: (qmail 65322 invoked by uid 99); 25 Aug 2013 22:44:57 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 25 Aug 2013 22:44:57 +0000 X-ASF-Spam-Status: No, hits=0.0 required=5.0 tests=RCVD_IN_DNSWL_NONE X-Spam-Check-By: apache.org Received-SPF: error (nike.apache.org: local policy) Received: from [64.59.134.9] (HELO idcmail-mo2no.shaw.ca) (64.59.134.9) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 25 Aug 2013 22:44:49 +0000 X-Cloudmark-SP-Filtered: true X-Cloudmark-SP-Result: v=1.1 cv=lbZngtFpA+T3WvIHIl4wnoqCVcx9ie5HeyIhFFUqCgg= c=1 sm=1 a=z1TLwsU0kBEA:10 a=BLceEmwcHowA:10 a=4qCffVMXeUXKbk5NMNcwFA==:17 a=mV9VRH-2AAAA:8 a=tFuiWLkXF2WUjXG4BQQA:9 a=CjuIK1q_8ugA:10 a=AKOOCnp6Qsmf9newibsA:9 a=4mTeRqbZVdAA:10 a=ZdkTvUqjjt4A:10 a=HpAAvcLHHh0Zw7uRqdWCyQ==:117 Received: from unknown (HELO daredevil.travisbrown.ca) ([70.71.133.237]) by idcmail-mo2no.shaw.ca with ESMTP; 25 Aug 2013 16:44:07 -0600 Received: from daredevil.travisbrown.ca (localhost [127.0.0.1]) by daredevil.travisbrown.ca (8.14.2/8.14.2) with ESMTP id r7PMi6xk025143; Sun, 25 Aug 2013 15:44:06 -0700 Received: (from travis@localhost) by daredevil.travisbrown.ca (8.14.2/8.14.2/Submit) id r7PMi5KX025142; Sun, 25 Aug 2013 15:44:05 -0700 X-Authentication-Warning: daredevil.travisbrown.ca: travis set sender to travisb@travisbrown.ca using -f Date: Sun, 25 Aug 2013 15:44:05 -0700 From: Travis Brown To: Les Mikesell , Ryan Schmidt , Branko ??ibej , Subversion , dev@subversion.apache.org, John Maher Subject: Re: Switching Message-ID: <20130825224405.GA24769@daredevil.travisbrown.ca> Mail-Followup-To: Les Mikesell , Ryan Schmidt , Branko ??ibej , Subversion , dev@subversion.apache.org, John Maher References: <5217A562.3020202@gmx.us> <54C87FD8-9CBD-41A3-9D6B-F7C1C787BB60@ryandesign.com> <5218656B.6020302@wandisco.com> <9DEB2347-7103-49A2-AC8C-51C8223C3069@ryandesign.com> <20130824190447.GB8910@ted.stsp.name> <20130824192641.GA5617@daredevil.travisbrown.ca> <20130824195313.GC8910@ted.stsp.name> <20130824215749.GA7559@daredevil.travisbrown.ca> <20130825094611.GE8910@ted.stsp.name> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=x-unknown; protocol="application/pgp-signature"; boundary="rwEMma7ioTxnRzrJ" Content-Disposition: inline In-Reply-To: <20130825094611.GE8910@ted.stsp.name> User-Agent: Mutt/1.4.2.3i X-Virus-Checked: Checked by ClamAV on apache.org --rwEMma7ioTxnRzrJ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable 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. --=20 Travis --rwEMma7ioTxnRzrJ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iF4EAREKAAYFAlIaiLUACgkQG8QSN8unuFr71gEA7EuUSjF86u2CgVk2rMIKiwNf enJ0Xnhccakk3+K9uGsBAJEr1hZFaaQ4HYguFjKHITLe+YlgiVLwQAtYkfvIKudj =ZbEu -----END PGP SIGNATURE----- --rwEMma7ioTxnRzrJ--