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 CDF574CC7 for ; Tue, 17 May 2011 23:11:42 +0000 (UTC) Received: (qmail 5158 invoked by uid 500); 17 May 2011 23:11:42 -0000 Delivered-To: apmail-subversion-commits-archive@subversion.apache.org Received: (qmail 5121 invoked by uid 500); 17 May 2011 23:11:42 -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 5108 invoked by uid 99); 17 May 2011 23:11:42 -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 23:11:42 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [209.85.214.43] (HELO mail-bw0-f43.google.com) (209.85.214.43) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 17 May 2011 23:11:34 +0000 Received: by bwz14 with SMTP id 14so1516700bwz.16 for ; Tue, 17 May 2011 16:11:12 -0700 (PDT) MIME-Version: 1.0 Received: by 10.204.20.74 with SMTP id e10mr1151767bkb.148.1305673870115; Tue, 17 May 2011 16:11:10 -0700 (PDT) Received: by 10.204.76.210 with HTTP; Tue, 17 May 2011 16:11:09 -0700 (PDT) X-Originating-IP: [146.6.53.230] In-Reply-To: <20110517224007.B79F323888DD@eris.apache.org> References: <20110517224007.B79F323888DD@eris.apache.org> Date: Tue, 17 May 2011 23:11:09 +0000 Message-ID: Subject: Re: svn commit: r1104610 - in /subversion/trunk/subversion/libsvn_wc: props.c wc_db.c wc_db.h From: Hyrum K Wright To: dev@subversion.apache.org Cc: commits@subversion.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable I understand the desire to get the buildbots green again, and I'm sorry these revisions which I committed broke the bots, but a little patience might have been useful here. We have a long tradition of allowing folks to attempt to fix problems, rather than reverting their commits without consultation. I kinda wish you'd have given me another 12 hours to attempt to fix it, rather than reverting. -Hyrum On Tue, May 17, 2011 at 10:40 PM, wrote: > Author: rhuijben > Date: Tue May 17 22:40:07 2011 > New Revision: 1104610 > > URL: http://svn.apache.org/viewvc?rev=3D1104610&view=3Drev > Log: > Temporarily revert r1104383 (and to resolve conflicts also r1104400) as > these revisions cause some very hard to diagnose problems in the property > handling, which breaks on all buildbots. > > * libsvn_wc/props.c > * libsvn_wc/wc_db.c > * libsvn_wc/wc_db.h > =A0svn merge -c -1104400,-1104383 ^/subversion/trunk > > Modified: > =A0 =A0subversion/trunk/subversion/libsvn_wc/props.c > =A0 =A0subversion/trunk/subversion/libsvn_wc/wc_db.c > =A0 =A0subversion/trunk/subversion/libsvn_wc/wc_db.h > > Modified: subversion/trunk/subversion/libsvn_wc/props.c > URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/p= rops.c?rev=3D1104610&r1=3D1104609&r2=3D1104610&view=3Ddiff > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- subversion/trunk/subversion/libsvn_wc/props.c (original) > +++ subversion/trunk/subversion/libsvn_wc/props.c Tue May 17 22:40:07 201= 1 > @@ -1665,34 +1665,6 @@ svn_wc_prop_list2(apr_hash_t **props, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0scratch_pool)); > =A0} > > -struct propname_filter_baton_t { > - =A0svn_wc__proplist_receiver_t receiver_func; > - =A0void *receiver_baton; > - =A0const char *propname; > -}; > - > -static svn_error_t * > -propname_filter_receiver(void *baton, > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 const char *local_abspa= th, > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 apr_hash_t *props, > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 apr_pool_t *scratch_poo= l) > -{ > - =A0struct propname_filter_baton_t *pfb =3D baton; > - =A0const svn_string_t *propval =3D apr_hash_get(props, pfb->propname, > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0 =A0 APR_HASH_KEY_STRING); > - > - =A0if (propval) > - =A0 =A0{ > - =A0 =A0 =A0props =3D apr_hash_make(scratch_pool); > - =A0 =A0 =A0apr_hash_set(props, pfb->propname, APR_HASH_KEY_STRING, prop= val); > - > - =A0 =A0 =A0SVN_ERR(pfb->receiver_func(pfb->receiver_baton, local_abspat= h, props, > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 scratch= _pool)); > - =A0 =A0} > - > - =A0return SVN_NO_ERROR; > -} > - > =A0svn_error_t * > =A0svn_wc__prop_list_recursive(svn_wc_context_t *wc_ctx, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 const char *local= _abspath, > @@ -1706,23 +1678,40 @@ svn_wc__prop_list_recursive(svn_wc_conte > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 void *cancel_bato= n, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 apr_pool_t *scrat= ch_pool) > =A0{ > - =A0svn_wc__proplist_receiver_t receiver =3D receiver_func; > - =A0void *baton =3D receiver_baton; > - > - =A0struct propname_filter_baton_t pfb =3D { receiver_func, receiver_bat= on, > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 propname }; > - > - =A0if (propname) > + =A0switch (depth) > =A0 =A0 { > - =A0 =A0 =A0baton =3D &pfb; > - =A0 =A0 =A0receiver =3D propname_filter_receiver; > + =A0 =A0case svn_depth_empty: > + =A0 =A0 =A0{ > + =A0 =A0 =A0 =A0apr_hash_t *props; > + > + =A0 =A0 =A0 =A0if (pristine) > + =A0 =A0 =A0 =A0 =A0SVN_ERR(svn_wc__db_read_pristine_props(&props, wc_ct= x->db, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0 =A0 =A0 =A0 local_abspath, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0 =A0 =A0 =A0 scratch_pool, scratch_pool)); > + =A0 =A0 =A0 =A0else > + =A0 =A0 =A0 =A0 =A0SVN_ERR(svn_wc__db_read_props(&props, wc_ctx->db, lo= cal_abspath, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0scratch_pool, scratch_pool)); > + > + =A0 =A0 =A0 =A0if (receiver_func && props && apr_hash_count(props) > 0) > + =A0 =A0 =A0 =A0 =A0SVN_ERR((*receiver_func)(receiver_baton, local_abspa= th, props, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 scr= atch_pool)); > + =A0 =A0 =A0} > + =A0 =A0 =A0break; > + =A0 =A0case svn_depth_files: > + =A0 =A0case svn_depth_immediates: > + =A0 =A0case svn_depth_infinity: > + =A0 =A0 =A0SVN_ERR(svn_wc__db_read_props_streamily(wc_ctx->db, local_ab= spath, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0 =A0 =A0propname, depth, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0 =A0 =A0base_props, pristine, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0 =A0 =A0receiver_func, receiver_baton, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0 =A0 =A0cancel_func, cancel_baton, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0 =A0 =A0scratch_pool)); > + =A0 =A0 =A0break; > + =A0 =A0default: > + =A0 =A0 =A0SVN_ERR_MALFUNCTION(); > =A0 =A0 } > > - =A0return svn_wc__db_read_props_streamily(wc_ctx->db, local_abspath, de= pth, > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 base_props, pristine, > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 receiver, baton, > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 cancel_func, cancel_baton, > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 scratch_pool); > + =A0return SVN_NO_ERROR; > =A0} > > =A0svn_error_t * > > Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c > URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/w= c_db.c?rev=3D1104610&r1=3D1104609&r2=3D1104610&view=3Ddiff > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- subversion/trunk/subversion/libsvn_wc/wc_db.c (original) > +++ subversion/trunk/subversion/libsvn_wc/wc_db.c Tue May 17 22:40:07 201= 1 > @@ -7629,6 +7629,7 @@ cache_props_recursive(void *cb_baton, > =A0svn_error_t * > =A0svn_wc__db_read_props_streamily(svn_wc__db_t *db, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 const cha= r *local_abspath, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0const ch= ar *propname, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 svn_depth= _t depth, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 svn_boole= an_t base_props, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 svn_boole= an_t pristine, > @@ -7647,6 +7648,9 @@ svn_wc__db_read_props_streamily(svn_wc__ > > =A0 SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath)); > =A0 SVN_ERR_ASSERT(receiver_func); > + =A0SVN_ERR_ASSERT((depth =3D=3D svn_depth_files) || > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (depth =3D=3D svn_depth_immediates) || > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (depth =3D=3D svn_depth_infinity)); > > =A0 SVN_ERR(svn_wc__db_wcroot_parse_local_abspath(&wcroot, &local_relpath= , > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 =A0 =A0 =A0 db, local_abspath, > @@ -7692,8 +7696,25 @@ svn_wc__db_read_props_streamily(svn_wc__ > =A0 =A0 =A0 =A0 =A0 child_abspath =3D svn_dirent_join(wcroot->abspath, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 child_relpath, iterpool); > > - =A0 =A0 =A0 =A0 =A0SVN_ERR(receiver_func(receiver_baton, child_abspath,= props, > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0iterpool= )); > + =A0 =A0 =A0 =A0 =A0/* Filter on the propname, if given one. */ > + =A0 =A0 =A0 =A0 =A0if (propname) > + =A0 =A0 =A0 =A0 =A0 =A0{ > + =A0 =A0 =A0 =A0 =A0 =A0 =A0svn_string_t *propval =3D apr_hash_get(props= , propname, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0 =A0 =A0 =A0 =A0 APR_HASH_KEY_STRING); > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0if (propval) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0{ > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0props =3D apr_hash_make(iterpool); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0apr_hash_set(props, propname, APR_HA= SH_KEY_STRING, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 propval); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0} > + =A0 =A0 =A0 =A0 =A0 =A0 =A0else > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0props =3D NULL; > + =A0 =A0 =A0 =A0 =A0 =A0} > + > + =A0 =A0 =A0 =A0 =A0if (props) > + =A0 =A0 =A0 =A0 =A0 =A0SVN_ERR(receiver_func(receiver_baton, child_absp= ath, props, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0iter= pool)); > =A0 =A0 =A0 =A0 } > > =A0 =A0 =A0 SVN_ERR(svn_sqlite__step(&have_row, stmt)); > > Modified: subversion/trunk/subversion/libsvn_wc/wc_db.h > URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/w= c_db.h?rev=3D1104610&r1=3D1104609&r2=3D1104610&view=3Ddiff > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- subversion/trunk/subversion/libsvn_wc/wc_db.h (original) > +++ subversion/trunk/subversion/libsvn_wc/wc_db.h Tue May 17 22:40:07 201= 1 > @@ -2017,10 +2017,14 @@ svn_wc__db_read_props(apr_hash_t **props > =A0* > =A0* If BASE_PROPS is FALSE and, PRISTINE is TRUE, the local modification= s will > =A0* be suppressed. If PRISTINE is FALSE, local modifications will be vis= ible. > + * > + * NOTE: The only valid values for DEPTH are svn_depth_files, > + * =A0 =A0 =A0 svn_depth_immediates, and svn_depth_infinity. > =A0*/ > =A0svn_error_t * > =A0svn_wc__db_read_props_streamily(svn_wc__db_t *db, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 const cha= r *local_abspath, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0const ch= ar *propname, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 svn_depth= _t depth, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 svn_boole= an_t base_props, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 svn_boole= an_t pristine, > > >