Log Message: |
Make FSFS format 7 use a different name for the 'transactions' folder.
This is somewhat similar to what happened during the f1/f2->f3 upgrade
which made old code either succeed with a commit or fail in various
places when the format upgrade already had an impact on the contents.
With this change, however, old servers will not be able to even access
txns after the upgrade and will consistently see ENOENT errors. Hence,
they can't write to the repo. New servers will only be able to continue
transactions after a hot upgrade when they refresh their format info
as done in e.g. r1627949.
* subversion/libsvn_fs_fs/fs.h
(PATH_TXNS_DIR): Document that this is only valid for pre-f7 repos.
(PATH_TXNS_LA_DIR): New path constant.
* subversion/libsvn_fs_fs/fs_fs.c
(upgrade_body): Rename the txns dir if the repo has been pre-f7.
Be sure to revert that if the upgrade process failed.
* subversion/libsvn_fs_fs/util.c
(svn_fs_fs__path_txns_dir): Return the now format-dependent txns folder.
* subversion/libsvn_fs_fs/structure
(Layout of the FS directory): Document how the txns folder name depends
on the repo format.
* subversion/tests/libsvn_fs/fs-test.c
(upgrade_while_committing): Adapt test case. Any txn access with an
outdated svn_fs_t will now fail with ENOENT.
|