Any chance patch submissions can include [PATCH] in the subject, per HACKING guidelines?
Thanks, -Hyrum On Dec 8, 2009, at 12:14 AM, Kannan wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Stefan Sperling wrote: > [..] >> You're correct, the place you point out is the place where my_bc_url >> is initialised. If we could canonicalise it right there without causing >> breakage elsewhere (make check over ra_neon should tell us) then please >> send an updated patch. I'd say if changing this ends up causing breakage >> we can apply your original patch, and then try to fix the breakage and >> canonicalise my_bc_url earlier in a separate patch. > > Thank you Stefan. `apr_hash_get()' returns a struct comprising of two > values(data, len), of which we need to canonicalise 'data' to store it > in `my_bc_url'. So, canonicalisation right there fails (AFAICS). > Attaching the updated original patch herewith. > > [[[ > Log: > Make a proper fix to resolve some deprecation warnings using > `svn_path_url_add_component2()' by canonicalizing the base before > passing to the above method. > > [in subversion/libsvn_ra_neon] > > * commit.c > (get_version_url, create_activity, commit_add_dir, commit_add_file > commit_close_file, add_child, commit_delete_entry): Use > `svn_path_url_add_component2()'. > (svn_ra_neon__get_commit_editor, checkout_resource, apply_revprops): > Canonicalize the base before passing to > `svn_path_url_add_component2()'. > > * props.c > (svn_ra_neon__get_baseline_info): Canonicalize the base before > passing to `svn_path_url_add_component2()'. > > Found and Suggested by: stsp > Patch by: Kannan R <kann...@collab.net> > ]]] > > > - -- > Thanks & Regards, > Kannan > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.6 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iQEVAwUBSx3u33lTqcY7ytmIAQLkpgf/Ye/v0jRCE65QFxYh5dr/oR5n/DoijIhO > fVVzsu/k9Cc/6SuKbCg6eCPr9rHaDRVvBCQy+kOHC3HYyNOdv37wUT0LGqc94LHg > RVyTq4R9EcIBFB05z3C7OD3UWso6ngaOteUD4+fe/PvPql51GiqQ+gPKzpmiZaJN > 23IN13gadZOXg8079N6yLv1ui+9OIG8i3UQ4ON9v6s5h8+euxMYv2A3qe6pjVaW6 > qXZKuAiL4/Qj7YMfOtEG7rmNsGtbukPFJ2kZ7p+Xu9B13Bxv2tOaGohlVf31Ypj7 > fJKiKunAbGJM4mN6L/cwlnQHIWIxSMvNzEex9ULkCym0AUTZrxtuHA== > =d3CC > -----END PGP SIGNATURE----- > Index: subversion/libsvn_ra_neon/commit.c > =================================================================== > --- subversion/libsvn_ra_neon/commit.c (revision 885339) > +++ subversion/libsvn_ra_neon/commit.c (working copy) > @@ -203,9 +203,9 @@ > the version resource URL of RSRC. */ > if (parent && parent->vsn_url && parent->revision == rsrc->revision) > { > - rsrc->vsn_url = svn_path_url_add_component(parent->vsn_url, > - rsrc->name, > - rsrc->pool); > + rsrc->vsn_url = svn_path_url_add_component2(parent->vsn_url, > + rsrc->name, > + rsrc->pool); > return SVN_NO_ERROR; > } > > @@ -231,7 +231,7 @@ > rsrc->revision, > pool)); > > - url = svn_path_url_add_component(bc_url.data, bc_relative.data, pool); > + url = svn_path_url_add_component2(bc_url.data, bc_relative.data, pool); > } > > /* Get the DAV:checked-in property, which contains the URL of the > @@ -325,8 +325,8 @@ > the activity, and create the activity. The URL for our activity > will be ACTIVITY_COLL/UUID */ > SVN_ERR(get_activity_collection(cc, &activity_collection, FALSE, pool)); > - url = svn_path_url_add_component(activity_collection->data, > - uuid_buf, pool); > + url = svn_path_url_add_component2(activity_collection->data, > + uuid_buf, pool); > SVN_ERR(svn_ra_neon__simple_request(&code, cc->ras, > "MKACTIVITY", url, NULL, NULL, > 201 /* Created */, > @@ -338,8 +338,8 @@ > if (code == 404) > { > SVN_ERR(get_activity_collection(cc, &activity_collection, TRUE, pool)); > - url = svn_path_url_add_component(activity_collection->data, > - uuid_buf, pool); > + url = svn_path_url_add_component2(activity_collection->data, > + uuid_buf, pool); > SVN_ERR(svn_ra_neon__simple_request(&code, cc->ras, > "MKACTIVITY", url, NULL, NULL, > 201, 0, pool)); > @@ -373,7 +373,7 @@ > rsrc->pool = pool; > rsrc->revision = revision; > rsrc->name = name; > - rsrc->url = svn_path_url_add_component(parent->url, name, pool); > + rsrc->url = svn_path_url_add_component2(parent->url, name, pool); > rsrc->local_path = svn_path_join(parent->local_path, name, pool); > > /* Case 1: the resource is truly "new". Either it was added as a > @@ -382,7 +382,7 @@ > URL by the rules of deltaV: "copy structure is preserved below > the WR you COPY to." */ > if (created || (parent->vsn_url == NULL)) > - rsrc->wr_url = svn_path_url_add_component(parent->wr_url, name, pool); > + rsrc->wr_url = svn_path_url_add_component2(parent->wr_url, name, pool); > > /* Case 2: the resource is already under version-control somewhere. > This means it has a VR URL already, and the WR URL won't exist > @@ -517,8 +517,7 @@ > return svn_error_createf(SVN_ERR_RA_DAV_MALFORMED_DATA, NULL, > _("Unable to parse URL '%s'"), locn); > } > - > - rsrc->wr_url = apr_pstrdup(rsrc->pool, parse.path); > + rsrc->wr_url = svn_uri_canonicalize(parse.path, rsrc->pool); > ne_uri_free(&parse); > > return SVN_NO_ERROR; > @@ -714,7 +713,7 @@ > SVN_ERR(checkout_resource(parent->cc, parent->rsrc, TRUE, NULL, pool)); > > /* create the URL for the child resource */ > - child = svn_path_url_add_component(parent->rsrc->wr_url, name, pool); > + child = svn_path_url_add_component2(parent->rsrc->wr_url, name, pool); > > /* Start out assuming that we're deleting a file; try to lookup the > path itself in the token-hash, and if found, attach it to the If: > @@ -729,8 +728,8 @@ > const char *token_header_val; > const char *token_uri; > > - token_uri = svn_path_url_add_component(parent->cc->ras->url->data, > - path, pool); > + token_uri = svn_path_url_add_component2(parent->cc->ras->url->data, > + path, pool); > token_header_val = apr_psprintf(pool, "<%s> (<%s>)", > token_uri, token); > extra_headers = apr_hash_make(pool); > @@ -888,9 +887,9 @@ > "source" argument to the COPY request. The "Destination:" > header given to COPY is simply the wr_url that is already > part of the child object. */ > - copy_src = svn_path_url_add_component(bc_url.data, > - bc_relative.data, > - workpool); > + copy_src = svn_path_url_add_component2(bc_url.data, > + bc_relative.data, > + workpool); > > /* Have neon do the COPY. */ > SVN_ERR(svn_ra_neon__copy(parent->cc->ras, > @@ -1088,9 +1087,9 @@ > "source" argument to the COPY request. The "Destination:" > header given to COPY is simply the wr_url that is already > part of the file_baton. */ > - copy_src = svn_path_url_add_component(bc_url.data, > - bc_relative.data, > - workpool); > + copy_src = svn_path_url_add_component2(bc_url.data, > + bc_relative.data, > + workpool); > > /* Have neon do the COPY. */ > SVN_ERR(svn_ra_neon__copy(parent->cc->ras, > @@ -1271,9 +1270,9 @@ > svn_ra_neon__set_header > (extra_headers, "If", > apr_psprintf(pool, "<%s> (<%s>)", > - svn_path_url_add_component(cc->ras->url->data, > - file->rsrc->url, > - request->pool), > + svn_path_url_add_component2(cc->ras->url->data, > + file->rsrc->url, > + request->pool), > file->token)); > > if (pb->base_checksum) > @@ -1389,7 +1388,7 @@ > vcc, NULL, > &svn_ra_neon__checked_in_prop, pool)); > baseline_rsrc.pool = pool; > - baseline_rsrc.vsn_url = baseline_url->data; > + baseline_rsrc.vsn_url = svn_uri_canonicalize(baseline_url->data, pool); > > /* To set the revision properties, we must checkout the latest baseline > and get back a mutable "working" baseline. */ > @@ -1452,6 +1451,8 @@ > /* ### should we perform an OPTIONS to validate the server we're about > ### to talk to? */ > > + cc->ras->act_coll = svn_uri_canonicalize(cc->ras->act_coll, pool); > + > /* > ** Create an Activity. This corresponds directly to an FS transaction. > ** We will check out all further resources within the context of this > Index: subversion/libsvn_ra_neon/props.c > =================================================================== > --- subversion/libsvn_ra_neon/props.c (revision 885339) > +++ subversion/libsvn_ra_neon/props.c (working copy) > @@ -991,7 +991,10 @@ > > /* maybe return bc_url to the caller */ > if (bc_url) > - *bc_url = *my_bc_url; > + { > + bc_url->data = svn_uri_canonicalize(my_bc_url->data, pool); > + bc_url->len = my_bc_url->len; > + } > > if (latest_rev != NULL) > {