Checkout
stefan2
committed
on 31 Jan 16
Add the ability to emulate the old svn_fs_paths_changed2 through
svn_fs_paths_changed3. So, we've got a two-way emulation now and
we enable… Show more
Add the ability to emulate the old svn_fs_paths_changed2 through

svn_fs_paths_changed3.  So, we've got a two-way emulation now and

we enable both for now such that all callers of the old API will

be redirected: old API -> new API -> old API vtable entry.

As a bonus, the emulated svn_fs_paths_changed2 now correctly reports

the IDs for in-revision nodes in FSFS.  It also fails earlier on

corrupted change lists.  Both is only true for "emulated" mode.

* subversion/include/private/svn_fs_util.h

 (svn_fs__get_deleted_node): Declare a new private utility API needed

                             to handle ID creation edge cases.

* subversion/libsvn_fs_util/fs-util.c

 (svn_fs__prop_lists_equal): Implement.

* subversion/libsvn_fs/fs-loader.c

 (SVN_FS_EMULATE_PATHS_CHANGED): Declare new control macro as we did

                                 already for the new API.

 (add_changed_path_baton_t,

  add_changed_path): Callback implementation to emulate the old API

                     based on the new one.

 (svn_fs_paths_changed2): Emulate when necessary or forced to do so.

* subversion/tests/cmdline/svnadmin_tests.py

 (verify_invalid_path_changes): The correct ID construction in emulated

                                mode creates fewer repetitions of the

                                same error during verification.  Update

                                test expectations accordingly.

Show less