> + /* ras's URL may not exist in HEAD, and thus it's not safe to send
> + it as the main argument to the REPORT request; it might cause
> + dav_get_resource() to choke on the server. So instead, we pass a
> + baseline-collection URL, which we get from the peg revision. */
> + SVN_ERR(svn_ra_dav__get_baseline_info(NULL, &bc_url, &bc_relative, NULL,
> + ras->sess, ras->url, peg_revision,
> + ras->pool));
>
> We need to run the REPORT on some URI (which is ignored), and you're
> right, the URI may not exist in HEAD, which could cause mod_dav_svn to
> fail. But IIRC, __get_baseline_info() is a very expensive function,
> with potentially many network turnarounds. I think we should run this
> REPORT on the "VCC" URI, just as we do for many other types of report
> requests. The VCC URI is always guaranteed to exist, and can be
> obtained via svn_ra_dav__get_vcc(). This would keep our REPORT
> strategy pretty consistent across the board.
>
This doesn't seem to work. I'm passing a path relative to the repository
URL in the S:path element, so when I use the VCC, there is no info on
which absolute path to use. Naturally,
mod_dav_svn crashes since I try to resolve the
relative path against resource->info->repos_path, which is NULL now.
Should I instead resolve this on the client using
svn_ra_dav__get_repos_root, stripping that from the ras->url? That would
use get_baseline_info, but only if the repos_root isn't cached.
Regards,
//Peter
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Jun 17 22:52:09 2004