[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

[PATCH] Re: svn: Can't check path '/.svn/wc.db': Permission denied

From: Peter Samuelson <peter_at_p12n.org>
Date: Wed, 17 Feb 2010 20:27:59 -0600

Jon Delay writes:
> I keep most of my file system under svn, so I have .svn directories all over
> the place owned by root, chmod 700.
>
> Somewhere between 1.6.3 and 1.6.9, `svn checkout` started checking the root directory
> for the existence of an .svn directory and trying to look in it.

...and getting "Permission denied", and thus he cannot use 'svn checkout'
in his home directory.

The following (untested) patch will probably fix this - but is it a good
idea? Are there situations where we _want_ to catch errors trying to
detect a svn 1.7 wc in svn 1.6? I personally don't see why we need to.

Peter

[[[
* subversion/libsvn_wc/questions.c
  (is_inside_wc_ng): Ignore errors trying to access .svn/wc.db files in
   parent directories. Worst case, we allow a user to create a 1.6 wc
   inside a 1.7 wc.
]]]

--- subversion/libsvn_wc/questions.c
+++ subversion/libsvn_wc/questions.c
@@ -51,11 +51,16 @@ is_inside_wc_ng(const char *abspath,
                 apr_pool_t *pool)
 {
   svn_node_kind_t kind;
+ svn_error_t *err;
   const char *wc_db_path = svn_path_join_many(pool, abspath, ".svn", "wc.db",
                                               NULL);
 
- SVN_ERR(svn_io_check_path(wc_db_path, &kind, pool));
-
+ err = svn_io_check_path(wc_db_path, &kind, pool);
+ if (err)
+ {
+ svn_error_clear(err);
+ return SVN_NO_ERROR;
+ }
   if (kind == svn_node_file)
     {
       /* This value is completely bogus, but it is much higher than 1.6 will
Received on 2010-02-18 03:28:36 CET

This is an archived mail posted to the Subversion Dev mailing list.