[Stefan Sperling] > So my vote is: leave it as is, but print a more informative error message > suggesting to create the file (so that people don't have to post to > users@ to be instructed to do so), and make svnadmin upgrade create it.
I guess the common case is that the source of a hotcopy is _not_ the target of a previous hotcopy of a 1.6.x repository by 1.6.0 - 1.6.11. In which case the following simple patch should be sufficient. I'm not sure if svnadmin should explain the full situation with the 1.6.0 bug. Untested. Peter [[[ * subversion/libsvn_fs_fs/fs.h (SVN_FS_FS__MIN_CONFIG_FORMAT): New define. * subversion/libsvn_fs_fs/fs_fs.c (upgrade_body): Create fsfs.conf when upgrading a repository from < 1.6.0. (svn_fs_fs__hotcopy): Only copy fsfs.conf if the repository is >= 1.6.0. ]]] Index: subversion/libsvn_fs_fs/fs.h =================================================================== --- subversion/libsvn_fs_fs/fs.h (revision 980368) +++ subversion/libsvn_fs_fs/fs.h (working copy) @@ -122,6 +122,9 @@ extern "C" { /* The minimum format number that stores node kinds in changed-paths lists. */ #define SVN_FS_FS__MIN_KIND_IN_CHANGED_FORMAT 4 +/* The minimum format number that supports a db/fsfs.conf file. */ +#define SVN_FS_FS__MIN_CONFIG_FORMAT 4 + /* The minimum format number that supports packed revprop shards. */ #define SVN_FS_FS__MIN_PACKED_REVPROP_FORMAT 5 Index: subversion/libsvn_fs_fs/fs_fs.c =================================================================== --- subversion/libsvn_fs_fs/fs_fs.c (revision 980368) +++ subversion/libsvn_fs_fs/fs_fs.c (working copy) @@ -1326,6 +1326,9 @@ upgrade_body(void *baton, apr_pool_t *pool) STMT_CREATE_SCHEMA)); } + if (format < SVN_FS_FS__MIN_CONFIG_FORMAT) + SVN_ERR(write_config(fs, pool)); + /* Bump the format file. */ return write_format(format_path, SVN_FS_FS__FORMAT_NUMBER, max_files_per_dir, TRUE, pool); @@ -1503,7 +1506,8 @@ svn_fs_fs__hotcopy(const char *src_path, SVN_ERR(svn_io_dir_file_copy(src_path, dst_path, PATH_UUID, pool)); /* Copy the config. */ - SVN_ERR(svn_io_dir_file_copy(src_path, dst_path, PATH_CONFIG, pool)); + if (format >= SVN_FS_FS__MIN_CONFIG_FORMAT) + SVN_ERR(svn_io_dir_file_copy(src_path, dst_path, PATH_CONFIG, pool)); /* Copy the rep cache before copying the rev files to make sure all cached references will be present in the copy. */