You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2014/09/08 14:49:42 UTC

svn commit: r1623381 - /subversion/trunk/subversion/libsvn_fs_fs/recovery.c

Author: stefan2
Date: Mon Sep  8 12:49:42 2014
New Revision: 1623381

URL: http://svn.apache.org/r1623381
Log:
Make 'svnadmnin recover' bump the repository instance ID because the
admin might have copied the repo before attempting to recover it.

Under normal circumstances we would tell the admin to either use
hotcopy or to run 'svnadmin setuuid' on it.  The first might not
work on a corrupted repo while the second would invalidate working
copies even if the corruption did not affect the revision contents.
So, be nice to that stressed person and bump the instance ID.

* subversion/libsvn_fs_fs/recovery.c
  (recover_body): Bump instance ID before doing anything else.

Modified:
    subversion/trunk/subversion/libsvn_fs_fs/recovery.c

Modified: subversion/trunk/subversion/libsvn_fs_fs/recovery.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/recovery.c?rev=1623381&r1=1623380&r2=1623381&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/recovery.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/recovery.c Mon Sep  8 12:49:42 2014
@@ -348,6 +348,11 @@ recover_body(void *baton, apr_pool_t *po
   /* Lose potentially corrupted data in temp files */
   SVN_ERR(svn_fs_fs__cleanup_revprop_namespace(fs));
 
+  /* The admin may have created a plain copy of this repo before attempting
+     to recover it (hotcopy may or may not work with corrupted repos).
+     Bump the instance ID. */
+  SVN_ERR(svn_fs_fs__set_uuid(fs, fs->uuid, NULL, pool));
+
   /* We need to know the largest revision in the filesystem. */
   SVN_ERR(recover_get_largest_revision(fs, &max_rev, pool));