Return-Path: X-Original-To: apmail-subversion-commits-archive@minotaur.apache.org Delivered-To: apmail-subversion-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1B294472E for ; Tue, 17 May 2011 08:50:03 +0000 (UTC) Received: (qmail 77901 invoked by uid 500); 17 May 2011 08:50:03 -0000 Delivered-To: apmail-subversion-commits-archive@subversion.apache.org Received: (qmail 77877 invoked by uid 500); 17 May 2011 08:50:02 -0000 Mailing-List: contact commits-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@subversion.apache.org Delivered-To: mailing list commits@subversion.apache.org Received: (qmail 77864 invoked by uid 99); 17 May 2011 08:50:02 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 17 May 2011 08:50:02 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: local policy) Received: from [66.111.4.26] (HELO out2.smtp.messagingengine.com) (66.111.4.26) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 17 May 2011 08:49:56 +0000 Received: from compute4.internal (compute4.nyi.mail.srv.osa [10.202.2.44]) by gateway1.messagingengine.com (Postfix) with ESMTP id C5EE220A41; Tue, 17 May 2011 04:49:35 -0400 (EDT) Received: from frontend2.messagingengine.com ([10.202.2.161]) by compute4.internal (MEProxy); Tue, 17 May 2011 04:49:35 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=messagingengine.com; h=date:from:to:cc:subject:message-id:references:mime-version:content-type:content-transfer-encoding:in-reply-to; s=smtpout; bh=zUm7gJSFG3JHMKpHTJczt2CQXz0=; b=E2PYr++FN/4MT7E5gdsJOhQ9269uNEbORIDyyeGGnbCRiljKT7WZckZscqVjJZc8Y0e1xM+QhxRm6MAfBGHbt3denhwjG2XQtvm3g64TQdFEldRJMvLK5ru81AYp+JlCvGQnjAo9jbyPsKkOl8lXrmhhdc1J3Gjhf+mE2ArjuJw= X-Sasl-enc: bbF/THc8Eiw2qPoGarQMBEB+gORBB+JC6bogA7IHJygsLxTO/Z0Q4Ib16jlTRA 1305622175 Received: from lp-shahaf.local (i59F7870A.versanet.de [89.247.135.10]) by mail.messagingengine.com (Postfix) with ESMTPSA id CB5A5446479; Tue, 17 May 2011 04:49:34 -0400 (EDT) Date: Tue, 17 May 2011 11:49:29 +0200 From: Daniel Shahaf To: Hyrum K Wright Cc: dev@subversion.apache.org, commits@subversion.apache.org Subject: Re: svn commit: r1103771 - in /subversion/trunk/subversion: libsvn_client/prop_commands.c svn/propedit-cmd.c svn/propget-cmd.c Message-ID: <20110517094929.GB31904@lp-shahaf.local> References: <20110516153624.704BE23888EA@eris.apache.org> <20110517075052.GA30040@lp-shahaf.local> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) Hyrum K Wright wrote on Tue, May 17, 2011 at 07:21:43 +0000: > On Tue, May 17, 2011 at 7:51 AM, Daniel Shahaf wrote: > > hwright@apache.org wrote on Mon, May 16, 2011 at 15:36:24 -0000: > >> Author: hwright > >> Date: Mon May 16 15:36:24 2011 > >> New Revision: 1103771 > >> > >> URL: http://svn.apache.org/viewvc?rev=1103771&view=rev > >> Log: > >> Convert a bit of the recursive propget to use absolute paths, by doing path > >> relativifcation in the command line program, where it belongs. > >> > >> Note: I *think* this is backwards compatible, since we promise paths, but > >> don't specify absolute or relative in the docs. �If somebody has an alternative > >> interpretation, we can do the API-rev dance. > >> > >> * subversion/svn/propget-cmd.c > >> � (print_properties): Make a relative path from an absolute one, if possible. > >> > >> * subversion/svn/propedit-cmd.c > >> � (svn_cl__propedit): Fetch the property from the hash via absolute path. > > > > How can it be a backwards compatible API change if you had to change the > > API consumer (the cmdline client)? > > If the consumer depends upon an (undocumented) implementation detail, > you can bet it'll need to change when those details change. (Example: > anybody relying upon the entries-file implementation detail is going > to have a hard time with 1.7.) > > I maintain that if we didn't document the behavior, existing clients > are depending on an implementation detail (which they shouldn't be > doing). This doesn't mean we can't rev the API to make things easier > for them, but it does mean we are well within our rights to change the > implementation and have things break for the consumer. > Two things: * Could we have written the cmdline client in 1.6 in a way that's oblivious of the absoluteness/relativeness of the hash keys? * Concretely: the svn_client_propget3() docstring states that the keys will be prefixed by @a TARGET. That seems to me to imply svn_dirent_join(TARGET, ...) --- without changing whether TARGET is absolute or relative. > -Hyrum