Author: danielsh Date: Wed Jul 27 23:52:52 2011 New Revision: 1151675 URL: http://svn.apache.org/viewvc?rev=1151675&view=rev Log: On the revprop-packing branch, drop a heuristic from 'recover'.
* subversion/libsvn_fs_fs/fs_fs.c (recover_body): Always check for the existence of MAX_REV's revprop file, even when it's packed. * BRANCH-README: Remove this task. Modified: subversion/branches/revprop-packing/BRANCH-README subversion/branches/revprop-packing/subversion/libsvn_fs_fs/fs_fs.c Modified: subversion/branches/revprop-packing/BRANCH-README URL: http://svn.apache.org/viewvc/subversion/branches/revprop-packing/BRANCH-README?rev=1151675&r1=1151674&r2=1151675&view=diff ============================================================================== --- subversion/branches/revprop-packing/BRANCH-README (original) +++ subversion/branches/revprop-packing/BRANCH-README Wed Jul 27 23:52:52 2011 @@ -27,8 +27,6 @@ TODO: * add some explicit tests for svnadmin upgrade/pack (both revs and revrops) -* drop heuristic in recover_body() uhohs=True - * ensure revprop path computations don't use the shard path for a packed revprop, and vice-versa Modified: subversion/branches/revprop-packing/subversion/libsvn_fs_fs/fs_fs.c URL: http://svn.apache.org/viewvc/subversion/branches/revprop-packing/subversion/libsvn_fs_fs/fs_fs.c?rev=1151675&r1=1151674&r2=1151675&view=diff ============================================================================== --- subversion/branches/revprop-packing/subversion/libsvn_fs_fs/fs_fs.c (original) +++ subversion/branches/revprop-packing/subversion/libsvn_fs_fs/fs_fs.c Wed Jul 27 23:52:52 2011 @@ -7327,36 +7327,21 @@ recover_body(void *baton, apr_pool_t *po /* Before setting current, verify that there is a revprops file for the youngest revision. (Issue #2992) */ - SVN_ERR(svn_io_check_path(path_revprops(fs, max_rev, pool), - &youngest_revprops_kind, pool)); + SVN_ERR(update_min_unpacked_revprop(fs, pool)); + if (is_packed_revprop(fs, max_rev)) + /* Possible when min_unpacked_rev == current+1 == max_rev+1. */ + SVN_ERR(svn_io_check_path(path_revprops_pack(fs, max_rev, pool), + &youngest_revprops_kind, pool)); + else + SVN_ERR(svn_io_check_path(path_revprops(fs, max_rev, pool), + &youngest_revprops_kind, pool)); + if (youngest_revprops_kind == svn_node_none) { - svn_boolean_t uhohs = TRUE; - - /* No file? Hrm... maybe that's because this repository is - packed and the youngest revision is in the revprops.db - file? We can at least see if that's a possibility. - - ### TODO: Could we check for revprops in the revprops.db? - ### What if rNNN legitimately has no revprops? */ - if (ffd->format >= SVN_FS_FS__MIN_PACKED_REVPROP_FORMAT - && max_rev != REVPROP_ZERO) - { - svn_revnum_t min_unpacked_revprop; - - SVN_ERR(read_min_unpacked_rev(&min_unpacked_revprop, - path_min_unpacked_revprop(fs, pool), - pool)); - if (min_unpacked_revprop == (max_rev + 1)) - uhohs = FALSE; - } - if (uhohs) - { - return svn_error_createf(SVN_ERR_FS_CORRUPT, NULL, - _("Revision %ld has a revs file but no " - "revprops file"), - max_rev); - } + return svn_error_createf(SVN_ERR_FS_CORRUPT, NULL, + _("Revision %ld has a revs file but no " + "revprops file"), + max_rev); } else if (youngest_revprops_kind != svn_node_file) {