-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
As per discussion in the thread [1], attaching the 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> [1]-http://mail-archives.apache.org/mod_mbox/subversion-dev/200912.mbox/%3c4b1deee0.6010...@collab.net%3e - -- Thanks & Regards, Kannan -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEVAwUBSx5RoHlTqcY7ytmIAQIzzAf+M10mK7sUcb78KzV5pSK4EgDHBjENz9AS rR9Vd90GEdnU5+qSz5r4ibK41OsxzaY3cV/M0SIXpD4pxTuuaUroe4KxxppC25kS LX0G0/MeTCWfOZEPbX1ZbACGgH56jEzIGYEgavZDzXvBT48V7W5G/AoGeP/L9bNG VH5NydGQ68LvHsWcokXZaE/6Hxt6ow079CFphfR9kSD/84RmtLf6GCWw/1+zuksQ Ba1TlrsW8e5L6XhoajPVYd2sCfeadnsXEfkv5diKeSkPAO5jftLBpywuz8fGi8Wj FuvUyBfXn4BAvnLrdF7NaYrO+nZbkFnDSZy9u7rtSZ3P1/L3BT+Alw== =EdNW -----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) {