Author: stefan2
Date: Fri Aug 2 13:27:49 2013
New Revision: 1509695
URL: http://svn.apache.org/r1509695
Log:
On the log-addressing branch: Fix / handle more compatibility cases.
* subversion/libsvn_fs_fs/fs.h
(SVN_FS_FS__FORMAT_NUMBER): direct devs to svn_fs_fs__create
in case of format bumps
* subversion/libsvn_fs_fs/fs_fs.c
(svn_fs_fs__create): reject 1.0 compatibility;
fix format version used for 1.8 compat
* subversion/libsvn_fs_fs/fs.c
(initialize_fs_struct): initialize / default to "phys addressing"
Suggested by: danielsh
Modified:
subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs.c
subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs.h
subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs_fs.c
Modified: subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs.c
URL:
http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs.c?rev=1509695&r1=1509694&r2=1509695&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs.c (original)
+++ subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs.c Fri Aug 2
13:27:49 2013
@@ -221,6 +221,8 @@ static svn_error_t *
initialize_fs_struct(svn_fs_t *fs)
{
fs_fs_data_t *ffd = apr_pcalloc(fs->pool, sizeof(*ffd));
+ ffd->min_log_addressing_rev = SVN_INVALID_REVNUM;
+
fs->vtable = &fs_vtable;
fs->fsap_data = ffd;
return SVN_NO_ERROR;
Modified: subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs.h
URL:
http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs.h?rev=1509695&r1=1509694&r2=1509695&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs.h (original)
+++ subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs.h Fri Aug 2
13:27:49 2013
@@ -104,7 +104,11 @@ extern "C" {
/* The format number of this filesystem.
This is independent of the repository format number, and
- independent of any other FS back ends. */
+ independent of any other FS back ends.
+
+ Note: If you bump this, please update the switch statement in
+ svn_fs_fs__create() as well.
+ */
#define SVN_FS_FS__FORMAT_NUMBER 7
/* The minimum format number that supports svndiff version 1. */
Modified: subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs_fs.c
URL:
http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs_fs.c?rev=1509695&r1=1509694&r2=1509695&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs_fs.c
(original)
+++ subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs_fs.c Fri Aug
2 13:27:49 2013
@@ -1080,6 +1080,9 @@ svn_fs_fs__create(svn_fs_t *fs,
/* select format number */
switch(compatible_version->minor)
{
+ case 0: return svn_error_create(SVN_ERR_FS_UNSUPPORTED_FORMAT, NULL,
+ _("FSFS is not compatible with Subversion prior to 1.1"));
+
case 1:
case 2:
case 3: format = 1;
@@ -1095,7 +1098,7 @@ svn_fs_fs__create(svn_fs_t *fs,
case 7: format = 4;
break;
- case 8: format = 5;
+ case 8: format = 6;
break;
default:format = SVN_FS_FS__FORMAT_NUMBER;