Author: julianfoad
Date: Thu Nov 26 17:43:10 2009
New Revision: 884655

URL: http://svn.apache.org/viewvc?rev=884655&view=rev
Log:
Make "obliterate" fail gracefully on the RA layers that don't yet support it
(which is all except RA-local).

* subversion/libsvn_ra/ra_loader.c
  (svn_ra__obliterate): Throw an error if the vtable obliterate method is
    NULL.

* subversion/libsvn_ra_neon/session.c
  (neon_vtable): Add a NULL entry for the obliterate_node_rev method.

* subversion/libsvn_ra_serf/serf.c
  (serf_vtable): Add a NULL entry for the obliterate_node_rev method.

* subversion/libsvn_ra_svn/client.c
  (ra_svn_vtable): Add a NULL entry for the obliterate_node_rev method.

Modified:
    subversion/trunk/subversion/libsvn_ra/ra_loader.c
    subversion/trunk/subversion/libsvn_ra_neon/session.c
    subversion/trunk/subversion/libsvn_ra_serf/serf.c
    subversion/trunk/subversion/libsvn_ra_svn/client.c

Modified: subversion/trunk/subversion/libsvn_ra/ra_loader.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra/ra_loader.c?rev=884655&r1=884654&r2=884655&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra/ra_loader.c (original)
+++ subversion/trunk/subversion/libsvn_ra/ra_loader.c Thu Nov 26 17:43:10 2009
@@ -1144,6 +1144,10 @@
 
   SVN_ERR(svn_ra_get_session_url(session, &session_url, pool));
 
+  if (session->vtable->obliterate_path_rev == NULL)
+    return svn_error_create(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
+                            "obliterate not supported by this RA layer");
+
   return session->vtable->obliterate_path_rev(session, rev, path, pool);
 }
 

Modified: subversion/trunk/subversion/libsvn_ra_neon/session.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_neon/session.c?rev=884655&r1=884654&r2=884655&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_neon/session.c (original)
+++ subversion/trunk/subversion/libsvn_ra_neon/session.c Thu Nov 26 17:43:10 
2009
@@ -1176,7 +1176,8 @@
   svn_ra_neon__replay,
   svn_ra_neon__has_capability,
   svn_ra_neon__replay_range,
-  svn_ra_neon__get_deleted_rev
+  svn_ra_neon__get_deleted_rev,
+  NULL  /* svn_ra_neon__obliterate_node_rev */
 };
 
 svn_error_t *

Modified: subversion/trunk/subversion/libsvn_ra_serf/serf.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/serf.c?rev=884655&r1=884654&r2=884655&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/serf.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/serf.c Thu Nov 26 17:43:10 2009
@@ -1014,7 +1014,8 @@
   svn_ra_serf__replay,
   svn_ra_serf__has_capability,
   svn_ra_serf__replay_range,
-  svn_ra_serf__get_deleted_rev
+  svn_ra_serf__get_deleted_rev,
+  NULL  /* svn_ra_serf__obliterate_node_rev */
 };
 
 svn_error_t *

Modified: subversion/trunk/subversion/libsvn_ra_svn/client.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_svn/client.c?rev=884655&r1=884654&r2=884655&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_svn/client.c (original)
+++ subversion/trunk/subversion/libsvn_ra_svn/client.c Thu Nov 26 17:43:10 2009
@@ -2415,6 +2415,7 @@
   ra_svn_has_capability,
   ra_svn_replay_range,
   ra_svn_get_deleted_rev,
+  NULL  /* ra_svn_obliterate_node_rev */
 };
 
 svn_error_t *


Reply via email to