You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by gs...@apache.org on 2012/05/10 04:13:33 UTC
svn commit: r1336471 - in /subversion/trunk/subversion/libsvn_ra_serf:
blame.c commit.c get_deleted_rev.c getlocations.c getlocationsegments.c
log.c mergeinfo.c property.c ra_serf.h serf.c update.c
Author: gstein
Date: Thu May 10 02:13:32 2012
New Revision: 1336471
URL: http://svn.apache.org/viewvc?rev=1336471&view=rev
Log:
Combine many calls to get_baseline_info/add_component into a single
call to generate a revision-stable URL.
* subversion/libsvn_ra_serf/ra_serf.h
(svn_ra_serf__get_stable_url): new declaration
* subversion/libsvn_ra_serf/property.c:
(svn_ra_serf__get_stable_url): new implementation
* subversion/libsvn_ra_serf/serf.c:
(svn_ra_serf__get_latest_revnum): leave a todo marker about the sole
remaining use of get_baseline_info().
(fetch_path_props): use get_stable_url
(svn_ra_serf__get_dir): use get_stable_url
* subversion/libsvn_ra_serf/commit.c:
(get_version_url): remove CONN parameter since it will always be
equal to SESSION->conns[0]. use get_stable_url
(checkout_file, open_root): update params to get_version_url
(add_directory): use get_stable_url. update params to get_version_url
(close_file): use get_stable_url
* subversion/libsvn_ra_serf/getlocationsegments.c:
(svn_ra_serf__get_location_segments): use get_stable_url
* subversion/libsvn_ra_serf/blame.c:
(svn_ra_serf__get_file_revs): use get_stable_url
* subversion/libsvn_ra_serf/log.c:
(svn_ra_serf__get_log): use get_stable_url
* subversion/libsvn_ra_serf/get_deleted_rev.c:
(svn_ra_serf__get_deleted_rev): use get_stable_url
* subversion/libsvn_ra_serf/update.c:
(svn_ra_serf__get_file): use get_stable_url
* subversion/libsvn_ra_serf/getlocations.c:
(svn_ra_serf__get_locations): use get_stable_url
* subversion/libsvn_ra_serf/mergeinfo.c:
(svn_ra_serf__get_mergeinfo): use stable_url
Modified:
subversion/trunk/subversion/libsvn_ra_serf/blame.c
subversion/trunk/subversion/libsvn_ra_serf/commit.c
subversion/trunk/subversion/libsvn_ra_serf/get_deleted_rev.c
subversion/trunk/subversion/libsvn_ra_serf/getlocations.c
subversion/trunk/subversion/libsvn_ra_serf/getlocationsegments.c
subversion/trunk/subversion/libsvn_ra_serf/log.c
subversion/trunk/subversion/libsvn_ra_serf/mergeinfo.c
subversion/trunk/subversion/libsvn_ra_serf/property.c
subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
subversion/trunk/subversion/libsvn_ra_serf/serf.c
subversion/trunk/subversion/libsvn_ra_serf/update.c
Modified: subversion/trunk/subversion/libsvn_ra_serf/blame.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/blame.c?rev=1336471&r1=1336470&r2=1336471&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/blame.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/blame.c Thu May 10 02:13:32 2012
@@ -427,7 +427,7 @@ svn_ra_serf__get_file_revs(svn_ra_sessio
svn_ra_serf__session_t *session = ra_session->priv;
svn_ra_serf__handler_t *handler;
svn_ra_serf__xml_parser_t *parser_ctx;
- const char *relative_url, *basecoll_url, *req_url;
+ const char *req_url;
svn_error_t *err;
blame_ctx = apr_pcalloc(pool, sizeof(*blame_ctx));
@@ -440,10 +440,10 @@ svn_ra_serf__get_file_revs(svn_ra_sessio
blame_ctx->include_merged_revisions = include_merged_revisions;
blame_ctx->done = FALSE;
- SVN_ERR(svn_ra_serf__get_baseline_info(&basecoll_url, &relative_url, session,
- NULL, session->session_url.path,
- end, NULL, pool));
- req_url = svn_path_url_add_component2(basecoll_url, relative_url, pool);
+ SVN_ERR(svn_ra_serf__get_stable_url(&req_url, NULL /* latest_revnum */,
+ session, NULL /* conn */,
+ NULL /* url */, end,
+ pool, pool));
handler = apr_pcalloc(pool, sizeof(*handler));
Modified: subversion/trunk/subversion/libsvn_ra_serf/commit.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/commit.c?rev=1336471&r1=1336470&r2=1336471&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/commit.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/commit.c Thu May 10 02:13:32 2012
@@ -466,7 +466,6 @@ checkout_dir(dir_context_t *dir,
static svn_error_t *
get_version_url(const char **checked_in_url,
svn_ra_serf__session_t *session,
- svn_ra_serf__connection_t *conn,
const char *relpath,
svn_revnum_t base_revision,
const char *parent_vsn_url,
@@ -498,21 +497,21 @@ get_version_url(const char **checked_in_
else
{
const char *propfind_url;
+ svn_ra_serf__connection_t *conn = session->conns[0];
if (SVN_IS_VALID_REVNUM(base_revision))
{
- const char *bc_url, *bc_relpath;
-
/* mod_dav_svn can't handle the "Label:" header that
svn_ra_serf__deliver_props() is going to try to use for
this lookup, so we'll do things the hard(er) way, by
looking up the version URL from a resource in the
baseline collection. */
- SVN_ERR(svn_ra_serf__get_baseline_info(&bc_url, &bc_relpath,
- session, conn,
- session->session_url.path,
- base_revision, NULL, pool));
- propfind_url = svn_path_url_add_component2(bc_url, bc_relpath, pool);
+ /* ### conn==NULL for session->conns[0]. same as CONN. */
+ SVN_ERR(svn_ra_serf__get_stable_url(&propfind_url,
+ NULL /* latest_revnum */,
+ session, NULL /* conn */,
+ NULL /* url */, base_revision,
+ pool, pool));
}
else
{
@@ -563,7 +562,7 @@ checkout_file(file_context_t *file,
}
SVN_ERR(get_version_url(&checkout_url,
- file->commit->session, file->commit->conn,
+ file->commit->session,
file->relpath, file->base_revision,
NULL, scratch_pool));
@@ -1430,7 +1429,7 @@ open_root(void *edit_baton,
dir->removed_props = apr_hash_make(dir->pool);
SVN_ERR(get_version_url(&dir->url, dir->commit->session,
- dir->commit->conn, dir->relpath,
+ dir->relpath,
dir->base_revision, ctx->checked_in_url,
dir->pool));
ctx->checked_in_url = dir->url;
@@ -1632,7 +1631,7 @@ add_directory(const char *path,
else
{
apr_uri_t uri;
- const char *rel_copy_path, *basecoll_url, *req_url;
+ const char *req_url;
status = apr_uri_parse(dir->pool, dir->copy_path, &uri);
if (status)
@@ -1642,13 +1641,12 @@ add_directory(const char *path,
dir->copy_path);
}
- SVN_ERR(svn_ra_serf__get_baseline_info(&basecoll_url, &rel_copy_path,
- dir->commit->session,
- dir->commit->conn,
- uri.path, dir->copy_revision,
- NULL, dir_pool));
- req_url = svn_path_url_add_component2(basecoll_url, rel_copy_path,
- dir->pool);
+ /* ### conn==NULL for session->conns[0]. same as commit->conn. */
+ SVN_ERR(svn_ra_serf__get_stable_url(&req_url, NULL /* latest_revnum */,
+ dir->commit->session,
+ NULL /* conn */,
+ uri.path, dir->copy_revision,
+ dir_pool, dir_pool));
handler->method = "COPY";
handler->path = req_url;
@@ -1718,7 +1716,7 @@ open_directory(const char *path,
else
{
SVN_ERR(get_version_url(&dir->url,
- dir->commit->session, dir->commit->conn,
+ dir->commit->session,
dir->relpath, dir->base_revision,
dir->commit->checked_in_url, dir->pool));
}
@@ -2034,7 +2032,7 @@ close_file(void *file_baton,
{
svn_ra_serf__handler_t *handler;
apr_uri_t uri;
- const char *rel_copy_path, *basecoll_url, *req_url;
+ const char *req_url;
status = apr_uri_parse(pool, ctx->copy_path, &uri);
if (status)
@@ -2044,12 +2042,12 @@ close_file(void *file_baton,
ctx->copy_path);
}
- SVN_ERR(svn_ra_serf__get_baseline_info(&basecoll_url, &rel_copy_path,
- ctx->commit->session,
- ctx->commit->conn,
- uri.path, ctx->copy_revision,
- NULL, pool));
- req_url = svn_path_url_add_component2(basecoll_url, rel_copy_path, pool);
+ /* ### conn==NULL for session->conns[0]. same as commit->conn. */
+ SVN_ERR(svn_ra_serf__get_stable_url(&req_url, NULL /* latest_revnum */,
+ ctx->commit->session,
+ NULL /* conn */,
+ uri.path, ctx->copy_revision,
+ pool, pool));
handler = apr_pcalloc(pool, sizeof(*handler));
handler->handler_pool = pool;
Modified: subversion/trunk/subversion/libsvn_ra_serf/get_deleted_rev.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/get_deleted_rev.c?rev=1336471&r1=1336470&r2=1336471&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/get_deleted_rev.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/get_deleted_rev.c Thu May 10 02:13:32 2012
@@ -187,7 +187,7 @@ svn_ra_serf__get_deleted_rev(svn_ra_sess
svn_ra_serf__session_t *ras = session->priv;
svn_ra_serf__handler_t *handler;
svn_ra_serf__xml_parser_t *parser_ctx;
- const char *relative_url, *basecoll_url, *req_url;
+ const char *req_url;
svn_error_t *err;
drev_ctx = apr_pcalloc(pool, sizeof(*drev_ctx));
@@ -198,11 +198,10 @@ svn_ra_serf__get_deleted_rev(svn_ra_sess
drev_ctx->revision_deleted = revision_deleted;
drev_ctx->done = FALSE;
- SVN_ERR(svn_ra_serf__get_baseline_info(&basecoll_url, &relative_url,
- ras, NULL, NULL, peg_revision, NULL,
- pool));
-
- req_url = svn_path_url_add_component2(basecoll_url, relative_url, pool);
+ SVN_ERR(svn_ra_serf__get_stable_url(&req_url, NULL /* latest_revnum */,
+ ras, NULL /* conn */,
+ NULL /* url */, peg_revision,
+ pool, pool));
parser_ctx = apr_pcalloc(pool, sizeof(*parser_ctx));
parser_ctx->pool = pool;
Modified: subversion/trunk/subversion/libsvn_ra_serf/getlocations.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/getlocations.c?rev=1336471&r1=1336470&r2=1336471&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/getlocations.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/getlocations.c Thu May 10 02:13:32 2012
@@ -227,7 +227,7 @@ svn_ra_serf__get_locations(svn_ra_sessio
svn_ra_serf__session_t *session = ra_session->priv;
svn_ra_serf__handler_t *handler;
svn_ra_serf__xml_parser_t *parser_ctx;
- const char *relative_url, *basecoll_url, *req_url;
+ const char *req_url;
svn_error_t *err;
loc_ctx = apr_pcalloc(pool, sizeof(*loc_ctx));
@@ -240,11 +240,10 @@ svn_ra_serf__get_locations(svn_ra_sessio
*locations = loc_ctx->paths;
- SVN_ERR(svn_ra_serf__get_baseline_info(&basecoll_url, &relative_url, session,
- NULL, NULL, peg_revision, NULL,
- pool));
-
- req_url = svn_path_url_add_component2(basecoll_url, relative_url, pool);
+ SVN_ERR(svn_ra_serf__get_stable_url(&req_url, NULL /* latest_revnum */,
+ session, NULL /* conn */,
+ NULL /* url */, peg_revision,
+ pool, pool));
handler = apr_pcalloc(pool, sizeof(*handler));
Modified: subversion/trunk/subversion/libsvn_ra_serf/getlocationsegments.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/getlocationsegments.c?rev=1336471&r1=1336470&r2=1336471&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/getlocationsegments.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/getlocationsegments.c Thu May 10 02:13:32 2012
@@ -181,7 +181,7 @@ svn_ra_serf__get_location_segments(svn_r
svn_ra_serf__session_t *session = ra_session->priv;
svn_ra_serf__handler_t *handler;
svn_ra_serf__xml_parser_t *parser_ctx;
- const char *relative_url, *basecoll_url, *req_url;
+ const char *req_url;
svn_error_t *err;
gls_ctx = apr_pcalloc(pool, sizeof(*gls_ctx));
@@ -195,10 +195,10 @@ svn_ra_serf__get_location_segments(svn_r
gls_ctx->inside_report = FALSE;
gls_ctx->done = FALSE;
- SVN_ERR(svn_ra_serf__get_baseline_info(&basecoll_url, &relative_url, session,
- NULL, NULL, peg_revision, NULL, pool));
-
- req_url = svn_path_url_add_component2(basecoll_url, relative_url, pool);
+ SVN_ERR(svn_ra_serf__get_stable_url(&req_url, NULL /* latest_revnum */,
+ session, NULL /* conn */,
+ NULL /* url */, peg_revision,
+ pool, pool));
handler = apr_pcalloc(pool, sizeof(*handler));
Modified: subversion/trunk/subversion/libsvn_ra_serf/log.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/log.c?rev=1336471&r1=1336470&r2=1336471&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/log.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/log.c Thu May 10 02:13:32 2012
@@ -639,7 +639,7 @@ svn_ra_serf__get_log(svn_ra_session_t *r
svn_boolean_t want_custom_revprops;
svn_revnum_t peg_rev;
svn_error_t *err;
- const char *relative_url, *basecoll_url, *req_url;
+ const char *req_url;
log_ctx = apr_pcalloc(pool, sizeof(*log_ctx));
log_ctx->pool = pool;
@@ -694,10 +694,10 @@ svn_ra_serf__get_log(svn_ra_session_t *r
*/
peg_rev = (start > end) ? start : end;
- SVN_ERR(svn_ra_serf__get_baseline_info(&basecoll_url, &relative_url, session,
- NULL, NULL, peg_rev, NULL, pool));
-
- req_url = svn_path_url_add_component2(basecoll_url, relative_url, pool);
+ SVN_ERR(svn_ra_serf__get_stable_url(&req_url, NULL /* latest_revnum */,
+ session, NULL /* conn */,
+ NULL /* url */, peg_rev,
+ pool, pool));
handler = apr_pcalloc(pool, sizeof(*handler));
Modified: subversion/trunk/subversion/libsvn_ra_serf/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/mergeinfo.c?rev=1336471&r1=1336470&r2=1336471&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/mergeinfo.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/mergeinfo.c Thu May 10 02:13:32 2012
@@ -245,15 +245,14 @@ svn_ra_serf__get_mergeinfo(svn_ra_sessio
svn_ra_serf__session_t *session = ra_session->priv;
svn_ra_serf__handler_t *handler;
svn_ra_serf__xml_parser_t *parser_ctx;
- const char *relative_url, *basecoll_url;
const char *path;
*catalog = NULL;
- SVN_ERR(svn_ra_serf__get_baseline_info(&basecoll_url, &relative_url, session,
- NULL, NULL, revision, NULL, pool));
-
- path = svn_path_url_add_component2(basecoll_url, relative_url, pool);
+ SVN_ERR(svn_ra_serf__get_stable_url(&path, NULL /* latest_revnum */,
+ session, NULL /* conn */,
+ NULL /* url */, revision,
+ pool, pool));
mergeinfo_ctx = apr_pcalloc(pool, sizeof(*mergeinfo_ctx));
mergeinfo_ctx->pool = pool;
Modified: subversion/trunk/subversion/libsvn_ra_serf/property.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/property.c?rev=1336471&r1=1336470&r2=1336471&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/property.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/property.c Thu May 10 02:13:32 2012
@@ -1078,6 +1078,30 @@ svn_ra_serf__get_baseline_info(const cha
svn_error_t *
+svn_ra_serf__get_stable_url(const char **stable_url,
+ svn_revnum_t *latest_revnum,
+ svn_ra_serf__session_t *session,
+ svn_ra_serf__connection_t *conn,
+ const char *url,
+ svn_revnum_t revision,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ const char *basecoll_url;
+ const char *relpath;
+
+ SVN_ERR(svn_ra_serf__get_baseline_info(&basecoll_url, &relpath,
+ session, conn,
+ url, revision, latest_revnum,
+ scratch_pool));
+ *stable_url = svn_path_url_add_component2(basecoll_url, relpath,
+ result_pool);
+
+ return SVN_NO_ERROR;
+}
+
+
+svn_error_t *
svn_ra_serf__get_resource_type(svn_kind_t *kind,
apr_hash_t *props,
const char *url)
Modified: subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h?rev=1336471&r1=1336470&r2=1336471&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/ra_serf.h Thu May 10 02:13:32 2012
@@ -1169,6 +1169,45 @@ svn_ra_serf__get_baseline_info(const cha
svn_revnum_t *latest_revnum,
apr_pool_t *pool);
+/* Generate a revision-stable URL.
+
+ The RA APIs all refer to user/public URLs that float along with the
+ youngest revision. In many cases, we do NOT want to work with that URL
+ since it can change from one moment to the next. Especially if we
+ attempt to operation against multiple floating URLs -- we could end up
+ referring to two separate revisions.
+
+ The DAV RA provider(s) solve this by generating a URL that is specific
+ to a revision by using a URL into a "baseline collection".
+
+ For a specified SESSION, with an optional CONN (if NULL, then the
+ session's default connection will be used; specifically SESSION->conns[0]),
+ generate a revision-stable URL for URL at REVISION. If REVISION is
+ SVN_INVALID_REVNUM, then the stable URL will refer to the youngest
+ revision at the time this function was called.
+
+ The stable URL will be placed into *STABLE_URL, allocated from RESULT_POOL.
+
+ If LATEST_REVNUM is not NULL, then the revision used will be placed into
+ *LATEST_REVNUM. That will be equal to youngest, or the given REVISION.
+
+ This function operates synchronously, if any communication to the server
+ is required. Communication is needed if REVISION is SVN_INVALID_REVNUM
+ (to get the current youngest revnum), or if the specified REVISION is not
+ (yet) in our cache of baseline collections.
+
+ All temporary allocations are performed in SCRATCH_POOL. */
+svn_error_t *
+svn_ra_serf__get_stable_url(const char **stable_url,
+ svn_revnum_t *latest_revnum,
+ svn_ra_serf__session_t *session,
+ svn_ra_serf__connection_t *conn,
+ const char *url,
+ svn_revnum_t revision,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+
/** RA functions **/
svn_error_t *
Modified: subversion/trunk/subversion/libsvn_ra_serf/serf.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/serf.c?rev=1336471&r1=1336470&r2=1336471&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/serf.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/serf.c Thu May 10 02:13:32 2012
@@ -503,9 +503,12 @@ svn_ra_serf__get_latest_revnum(svn_ra_se
/* ### HTTPv2: use OPTIONS to get youngest. */
- return svn_ra_serf__get_baseline_info(&basecoll_url, &relative_url, session,
- NULL, session->session_url.path,
- SVN_INVALID_REVNUM, latest_revnum,
+ /* ### HTTPv1: extract the relevant bits from get_baseline_info() since
+ ### we don't care about anything beyond the revnum. */
+ return svn_ra_serf__get_baseline_info(&basecoll_url, &relative_url,
+ session, NULL /* conn */,
+ NULL /* url */, SVN_INVALID_REVNUM,
+ latest_revnum,
pool);
}
@@ -587,17 +590,15 @@ fetch_path_props(apr_hash_t **ret_props,
*/
if (SVN_IS_VALID_REVNUM(revision))
{
- const char *relative_url, *basecoll_url;
-
- SVN_ERR(svn_ra_serf__get_baseline_info(&basecoll_url, &relative_url,
- session, NULL, path,
- revision, NULL, pool));
+ SVN_ERR(svn_ra_serf__get_stable_url(&path, NULL /* latest_revnum */,
+ session, NULL /* conn */,
+ NULL /* url */, revision,
+ pool, pool));
/* We will try again with our new path; however, we're now
* technically an unversioned resource because we are accessing
* the revision's baseline-collection.
*/
- path = svn_path_url_add_component2(basecoll_url, relative_url, pool);
revision = SVN_INVALID_REVNUM;
}
@@ -960,13 +961,10 @@ svn_ra_serf__get_dir(svn_ra_session_t *r
public url. */
if (SVN_IS_VALID_REVNUM(revision) || fetched_rev)
{
- const char *relative_url, *basecoll_url;
-
- SVN_ERR(svn_ra_serf__get_baseline_info(&basecoll_url, &relative_url,
- session, NULL, path, revision,
- fetched_rev, pool));
-
- path = svn_path_url_add_component2(basecoll_url, relative_url, pool);
+ SVN_ERR(svn_ra_serf__get_stable_url(&path, fetched_rev,
+ session, NULL /* conn */,
+ path, revision,
+ pool, pool));
revision = SVN_INVALID_REVNUM;
}
/* REVISION is always SVN_INVALID_REVNUM */
Modified: subversion/trunk/subversion/libsvn_ra_serf/update.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/update.c?rev=1336471&r1=1336470&r2=1336471&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/update.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/update.c Thu May 10 02:13:32 2012
@@ -2900,12 +2900,10 @@ svn_ra_serf__get_file(svn_ra_session_t *
*/
if (SVN_IS_VALID_REVNUM(revision) || fetched_rev)
{
- const char *baseline_url, *rel_path;
-
- SVN_ERR(svn_ra_serf__get_baseline_info(&baseline_url, &rel_path,
- session, conn, fetch_url,
- revision, fetched_rev, pool));
- fetch_url = svn_path_url_add_component2(baseline_url, rel_path, pool);
+ SVN_ERR(svn_ra_serf__get_stable_url(&fetch_url, fetched_rev,
+ session, conn,
+ fetch_url, revision,
+ pool, pool));
revision = SVN_INVALID_REVNUM;
}
/* REVISION is always SVN_INVALID_REVNUM */