> -----Original Message----- > From: s...@apache.org [mailto:s...@apache.org] > Sent: woensdag 3 februari 2010 12:54 > To: comm...@subversion.apache.org > Subject: svn commit: r906016 - > /subversion/trunk/subversion/libsvn_client/patch.c > > Author: stsp > Date: Wed Feb 3 11:53:32 2010 > New Revision: 906016 > > URL: http://svn.apache.org/viewvc?rev=906016&view=rev > Log: > * subversion/libsvn_client/patch.c > (apply_one_patch): Check for existing unversioned, ignored, or obstructed > directories when creating missing parent directories for a target, > and skip the target if its parent directory cannot be created. > > Modified: > subversion/trunk/subversion/libsvn_client/patch.c > > Modified: subversion/trunk/subversion/libsvn_client/patch.c > URL: > http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/p > atch.c?rev=906016&r1=906015&r2=906016&view=diff > ========================================================== > ==================== > --- subversion/trunk/subversion/libsvn_client/patch.c (original) > +++ subversion/trunk/subversion/libsvn_client/patch.c Wed Feb 3 11:53:32 > 2010 > @@ -1229,6 +1229,7 @@ > for (i = 0; i < missing_components; i++) > { > const char *component; > + svn_wc_status2_t *status; > > svn_pool_clear(iterpool); > > @@ -1236,6 +1237,18 @@ > const char *); > abs_path = svn_dirent_join(abs_path, component, > pool); > + > + /* Skip things we should not be messing with. */ > + SVN_ERR(svn_wc_status3(&status, ctx->wc_ctx, abs_path, > + iterpool, iterpool)); > + if (status->text_status == svn_wc_status_unversioned || > + status->text_status == svn_wc_status_ignored || > + status->text_status == svn_wc_status_obstructed) > + { > + target->skipped = TRUE; > + break; > + }
I thinks something like svn_wc__node_get_kind() would be enough here. svn_wc_status() does a status scan (Compare against pristine) which you don't need here. I'm not sure what a proper way of handling obstructed (file<->dir misplacement) is after that change, but I doubt if it is relevant if you try other operations that assume a specific kind later on. Bert