On 06/13/10 06:25 PM, Uwe Stuehler wrote:
Index: subversion/libsvn_client/cmdline.c
===================================================================
--- subversion/libsvn_client/cmdline.c (revision 953325)
+++ subversion/libsvn_client/cmdline.c (working copy)
@@ -123,6 +123,7 @@ check_root_url_of_target(const char **root_url,
* argument.
*/
if ((err->apr_err == SVN_ERR_ENTRY_NOT_FOUND)
+ || (err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)
|| (err->apr_err == SVN_ERR_WC_NOT_WORKING_COPY))
{
svn_error_clear(err);
With this change svn_cl__status() actually makes it past the
argument parsing phase:
Sorry, replying to myself since I forgot to include a log message.
[[[
Fix handling of non-WC paths in presence of repository relative URLs
* subversion/libsvn_client/cmdline.c:
(check_root_url_of_target): Catch a new error constant for paths
that are not registered in a working copy, and thereby allow the
argument processing to continue as expected.
Patch by: Uwe Stuehler (subversion-li...@bsdx.de)
]]]
Actually, in the example that I used in my previous mail:
$ cd /path/to/wc
$ svn status ^/ foo
As far as I understood the purpose of check_root_url_of_target(),
it is applied in order to make sure that if ^/ is being used, all
other arguments refer to the same repository. Is that correct?
(That got me a bit confused, since I previously assumed that ^/
is always expanded to the repository URL of the current working
directory and not based on any other arguments that I supply.)
Even though 'foo' is not under SVN control and does not exist yet,
the argument points to a path *inside* the current working copy.
So I wonder: shouldn't it be possible to retrieve the repository
URL of that (nonexistent) path anyway? It would be possible to
infer this from the parent directory ("." in this case).
Cheers,
Uwe