You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2009/12/15 12:41:36 UTC

svn commit: r890771 - /subversion/trunk/subversion/libsvn_repos/obliterate.c

Author: julianfoad
Date: Tue Dec 15 11:41:36 2009
New Revision: 890771

URL: http://svn.apache.org/viewvc?rev=890771&view=rev
Log:
Make RA-local's "obliterate" function actually do the node deletion in
between creating a replacement transaction and committing the replacement
transaction. The result is the obliteration now really happens, although
not perfectly. The immediate steps needed are: fix up the "copies" table
(see r890770's log message); fix up future references to the changed
revision.

* subversion/libsvn_repos/obliterate.c
  (svn_repos__obliterate_path_rev): Do a (normal) "delete a node" on the
    obliteration transaction before committing it.

Modified:
    subversion/trunk/subversion/libsvn_repos/obliterate.c

Modified: subversion/trunk/subversion/libsvn_repos/obliterate.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_repos/obliterate.c?rev=890771&r1=890770&r2=890771&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_repos/obliterate.c (original)
+++ subversion/trunk/subversion/libsvn_repos/obliterate.c Tue Dec 15 11:41:36 2009
@@ -42,7 +42,7 @@
                                apr_pool_t *pool)
 {
   svn_fs_t *fs = svn_repos_fs(repos);
-  svn_fs_root_t *rev_root;
+  svn_fs_root_t *rev_root, *txn_root;
   svn_fs_txn_t *txn;
   const svn_fs_id_t *node_id;
 
@@ -62,9 +62,10 @@
 
   /* Begin a new transaction, based on the revision we want to modify. */
   SVN_ERR(svn_fs__begin_obliteration_txn(&txn, fs, revision, pool));
+  SVN_ERR(svn_fs_txn_root(&txn_root, txn, pool));
 
   /* Make the required changes in this txn */
-  /* ... */
+  SVN_ERR(svn_fs_delete(txn_root, path, pool));
 
   /* Commit the new transaction in place of the old revision */
   SVN_ERR(svn_fs__commit_obliteration_txn(revision, txn, pool));