51 lines
1.6 KiB
Diff
51 lines
1.6 KiB
Diff
Patch from upcoming subversion 1.9.1:
|
|
|
|
http://svn.apache.org/viewvc?view=revision&revision=1696695
|
|
|
|
--- ../subversion/libsvn_fs_x/fs_id.c 2015/08/20 01:01:06 1696694
|
|
+++ ./subversion/libsvn_fs_x/fs_id.c 2015/08/20 01:10:22 1696695
|
|
@@ -85,6 +85,13 @@
|
|
is not.*/
|
|
const char *fs_path;
|
|
|
|
+ /* If FS is NULL, this points to svn_fs_open() as passed to the library. */
|
|
+ svn_error_t *(*svn_fs_open_)(svn_fs_t **,
|
|
+ const char *,
|
|
+ apr_hash_t *,
|
|
+ apr_pool_t *,
|
|
+ apr_pool_t *);
|
|
+
|
|
/* Pool that this context struct got allocated in. */
|
|
apr_pool_t *owner;
|
|
|
|
@@ -118,11 +125,14 @@
|
|
fs_cleanup(void *baton)
|
|
{
|
|
svn_fs_x__id_context_t *context = baton;
|
|
+ svn_fs_x__data_t *ffd = context->fs->fsap_data;
|
|
|
|
/* Remember the FS_PATH to potentially reopen and mark the FS as n/a. */
|
|
context->fs_path = apr_pstrdup(context->owner, context->fs->path);
|
|
+ context->svn_fs_open_ = ffd->svn_fs_open_;
|
|
context->fs = NULL;
|
|
|
|
+
|
|
/* No need for further notifications because from now on, everything is
|
|
allocated in OWNER. */
|
|
apr_pool_cleanup_kill(context->owner, context, owner_cleanup);
|
|
@@ -137,8 +147,12 @@
|
|
{
|
|
if (!context->fs)
|
|
{
|
|
- svn_error_t *err = svn_fs_open2(&context->fs, context->fs_path, NULL,
|
|
- context->owner, context->owner);
|
|
+ svn_error_t *err;
|
|
+
|
|
+ SVN_ERR_ASSERT_NO_RETURN(context->svn_fs_open_);
|
|
+
|
|
+ err = context->svn_fs_open_(&context->fs, context->fs_path, NULL,
|
|
+ context->owner, context->owner);
|
|
if (err)
|
|
{
|
|
svn_error_clear(err);
|