svn_repos_upgrade2

Function svn_repos_upgrade2 

Source
pub unsafe extern "C" fn svn_repos_upgrade2(
    path: *const c_char,
    nonblocking: svn_boolean_t,
    notify_func: svn_repos_notify_func_t,
    notify_baton: *mut c_void,
    pool: *mut apr_pool_t,
) -> *mut svn_error_t
Expand description

Upgrade the Subversion repository (and its underlying versioned filesystem) located in the directory @a path to the latest version supported by this library. If the requested upgrade is not supported due to the current state of the repository or it underlying filesystem, return #SVN_ERR_REPOS_UNSUPPORTED_UPGRADE or #SVN_ERR_FS_UNSUPPORTED_UPGRADE (respectively) and make no changes to the repository or filesystem.

Acquires an exclusive lock on the repository, upgrades the repository, and releases the lock. If an exclusive lock can’t be acquired, returns error.

If @a nonblocking is TRUE, an error of type EWOULDBLOCK is returned if the lock is not immediately available.

If @a start_callback is not NULL, it will be called with @a start_callback_baton as argument before the upgrade starts, but after the exclusive lock has been acquired.

Use @a pool for necessary allocations.

@note This functionality is provided as a convenience for administrators wishing to make use of new Subversion functionality without a potentially costly full repository dump/load. As such, the operation performs only the minimum amount of work needed to accomplish this while maintaining the integrity of the repository. It does not guarantee the most optimized repository state as a dump and subsequent load would.

@note On some platforms the exclusive lock does not exclude other threads in the same process so this function should only be called by a single threaded process, or by a multi-threaded process when no other threads are accessing the repository.

@since New in 1.7.