Hi all,
If the source of checkout doesn't exists, the destination directory
is still created.
> svnadmin create SVN
> svn co file://`pwd`/SVN/repos repos
svn: Filesystem has no item
svn: file not found: revision `0', path `/repos'
> ll
total 4
drwxr-xr-x 6 plasma plasma 512 7 15 17:12 SVN
drwxr-xr-x 3 plasma plasma 512 7 15 17:12 repos
The patch (which is against subversion 0.25) fixes this behavior by
making sure the source does exist before actually doing update.
> svnadmin create SVN
> svn co file://`pwd`/SVN/repos repos
subversion/libsvn_client/checkout.c:97: (apr_err=125002)
svn: Bogus URL
svn: Source URL doesn't exist: file:///home/plasma/tmp/xx/SVN/repos.
> ll
total 2
drwxrwxr-x 6 plasma plasma 512 Jul 15 17:14 SVN
All tests in 'make check' are passed.
BTW, I'm not sure if SVN_ERR_BAD_URL is the correct error code.
Please let me know if there's a better one.
plasma
LOG:
* subversion/libsvn_client/checkout.c (svn_client__checkout_internal):
Make sure the source exists before start to update.
PATCH:
Index: subversion/libsvn_client/checkout.c
===================================================================
--- subversion/libsvn_client/checkout.c (revision 886)
+++ subversion/libsvn_client/checkout.c (revision 887)
@@ -90,6 +90,13 @@
SVN_ERR (svn_client__get_revision_number
(&revnum, ra_lib, session, revision, path, pool));
+ /* Make sure we have something to work with. */
+ SVN_ERR (ra_lib->check_path(&kind, session, "", revnum, pool));
+ if (kind == svn_node_none)
+ {
+ return svn_error_createf (SVN_ERR_BAD_URL, NULL,
+ "Source URL doesn't exist: %s.", URL);
+ }
SVN_ERR (svn_io_check_path (path, &kind, pool));
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Jul 15 11:41:47 2003