cmpilato@collab.net wrote:
> Julian Foad <julianfoad@btopenworld.com> writes:
>
>>If "svn st -u" can't contact the repository (via DAV), it proceeds
>>without an error or warning, and prints "*" by every item. If it
>>can't contact the repos via "file:", it prints an appropriate error
>>message and quits, which I think is the right behaviour. Anyone
>>have a fix for the case of DAV access?
>
> Hm. The '*' thing should only happen if it *can* contact the
> repository and learns, by doing so, that the target of the status has
> been removed from HEAD in the repository. Are the two RA layers
> returning different errors from their RA->check_path() calls, or are we
> even getting that far?
Huh ... it returns a "generic error". Here's the relevant code from subversion/libsvn_ra_dav/props.c:
if (err == SVN_NO_ERROR)
{
if (is_dir)
*kind = svn_node_dir;
else
*kind = svn_node_file;
}
else /* some error, read the comment below */
{
/* ### This is way too general. We should only convert the
* error to `svn_node_none' if we're sure that's what the error
* means; for example, the test used to be this
*
* (err && (err->apr_err == SVN_ERR_RA_DAV_PROPS_NOT_FOUND))
*
* which seemed reasonable...
*
* However, right now svn_ra_dav__get_props() returns a generic
* error when the entity doesn't exist. It's APR_EGENERAL or
* something like that, and ne_get_status(req)->code == 500, not
* 404. I don't know whether this is something that can be
* improved just in that function, or if the server will need to
* be more descriptive about the error. Greg, thoughts?
*/
svn_error_clear (err);
*kind = svn_node_none;
return SVN_NO_ERROR;
}
If no-one has a solution yet, I'll file an issue. (I can't find one.)
- Julian
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Sep 17 17:44:33 2003