fs_fs.c:recover_body() needs to be taught that the youngest revision
does not necessarily have a revprop file. The following repository
demonstrates the bug:
% cat db/format
5
layout sharded 4
% cat db/current
3
% find db/rev*
db/revprops
db/revprops/revprops.db
db/revs
db/revs/0.pack
db/revs/0.pack/manifest
db/revs/0.pack/pack
% svnadmin recover ./
Repository lock acquired.
Please wait; recovering the repository may take some time...
subversion/libsvn_repos/repos.c:1740: (apr_err=160004)
subversion/libsvn_fs_fs/fs_fs.c:606: (apr_err=160004)
subversion/libsvn_fs_fs/fs_fs.c:6780: (apr_err=160004)
svnadmin: Revision 3 has a revs file but no revprops file
%
I created the repository as follows:
% svnadmin create r
% sed -i 2s/1000/4/ r/db/format
% for i in 1 2 3; do svn mkdir file://`pwd`/r/$i -mr$i; done
Found by: svnadmin_tests 13, when built with
-DSVN_FS_FS_DEFAULT_MAX_FILES_PER_DIR=4 and -DPACK_AFTER_EVERY_COMMIT.
Daniel