Log Message: |
Fix a broken assumption within the r1603605 changeset.
When format 1 and 2 filesystems are being upgraded, the upgrade routine
leaves the db/current contents as is. As a consequence, there is a window
when a filesystem has a new format, but the 'current' file still contains the
additional IDs left from an old format, i.e. it could look like "359 j5 v\n"
(last values are bogus and won't be there after the next transaction commit).
We should be able to parse it, otherwise any upgraded pre-1.4-compatible
repository will block the commits.
Loosen the corresponding checks.
* subversion/libsvn_fs_fs/util.c
(svn_fs_fs__read_current): Do not be too strict for new filesystem formats
and only expect a parseable revision number. Adjust a scope of the local
variable.
* subversion/tests/cmdline/svnadmin_tests.py
(upgrade): New regression test. Prior to this change, we actually had no
tests covering the 'svnadmin upgrade' behavior, so we use this opportunity
to test both BDB and FSFS. Even though BDB is deprecated, its upgrade code
does some amount of work in this case, and there should be nothing wrong
with testing it.
(test_list): Reference the new test.
|