I thought of get_mergeinfo hook to ra_serf. Before that just thought of building svn with serf support.
Immedeately after building it encountered that svn client segfaulting upon checkout. Found the cause to be 'missing'(non-existent *not NULL* ) 'get_mergeinfo' hook.
Fix would be either put a placeholder NULL till implementation, or move the hook to end.
This given a spark that any 1.4.x libsvn_ra_(dav|svn|local) in the 1.5.x chain could give a similar crash.
With regards
Kamesh Jayachandran
-----Original Message-----
From: Daniel L. Rall [mailto:dlr@finemaltcoding.com]
Sent: Sun 11/19/2006 2:41 AM
To: Kamesh Jayachandran
Cc: dev@subversion.tigris.org
Subject: Re: [PATCH][merge-tracking]Maintain Back Compatibility with 1.x.y
Kamesh, all of this patch is to private headers and implementation,
which should remain backwards compatible per our conventions. Would
you please describe what problems you've seen which show this to be a
backwards incompatible change?
Thanks, Dan
On Sun, 19 Nov 2006, Kamesh Jayachandran wrote:
>
> Hi All,
> I happened to see the backward incompatible change to merge-tracking branch.
>
> Find the attached patch / log fixing the same.
>
> With regards
> Kamesh Jayachandran
[[[
Svn 1.5.* should be backward compatible with Svn 1.*.*.
* subversion/libsvn_ra/ra_loader.h
(svn_ra__vtable_t):
Move new hook 'get_merge_info' to the end.
* subversion/libsvn_ra_local/ra_plugin.c
(ra_local_vtable):
Move new hook 'svn_ra_local__get_merge_info' to the end.
* subversion/libsvn_ra_svn/client.c
(ra_svn_vtable):
Move new hook 'ra_svn_get_merge_info' to the end.
* subversion/libsvn_ra_dav/session.c
(dav_vtable):
Move new hook 'svn_ra_dav__get_merge_info' to the end.
Patch by: Kamesh Jayachandran <kamesh@collab.net>
]]]
Index: subversion/libsvn_ra/ra_loader.h
===================================================================
--- subversion/libsvn_ra/ra_loader.h (revision 22315)
+++ subversion/libsvn_ra/ra_loader.h (working copy)
@@ -104,12 +104,6 @@
svn_revnum_t revision,
apr_uint32_t dirent_fields,
apr_pool_t *pool);
- svn_error_t *(*get_merge_info)(svn_ra_session_t *session,
- apr_hash_t **mergeinfo,
- const apr_array_header_t *paths,
- svn_revnum_t revision,
- svn_boolean_t include_parents,
- apr_pool_t *pool);
svn_error_t *(*do_update)(svn_ra_session_t *session,
const svn_ra_reporter2_t **reporter,
void **report_baton,
@@ -217,6 +211,12 @@
const svn_delta_editor_t *editor,
void *edit_baton,
apr_pool_t *pool);
+ svn_error_t *(*get_merge_info)(svn_ra_session_t *session,
+ apr_hash_t **mergeinfo,
+ const apr_array_header_t *paths,
+ svn_revnum_t revision,
+ svn_boolean_t include_parents,
+ apr_pool_t *pool);
} svn_ra__vtable_t;
/* The RA session object. */
Index: subversion/libsvn_ra_local/ra_plugin.c
===================================================================
--- subversion/libsvn_ra_local/ra_plugin.c (revision 22315)
+++ subversion/libsvn_ra_local/ra_plugin.c (working copy)
@@ -1339,7 +1339,6 @@
svn_ra_local__get_commit_editor,
svn_ra_local__get_file,
svn_ra_local__get_dir,
- svn_ra_local__get_merge_info,
svn_ra_local__do_update,
svn_ra_local__do_switch,
svn_ra_local__do_status,
@@ -1356,6 +1355,7 @@
svn_ra_local__get_lock,
svn_ra_local__get_locks,
svn_ra_local__replay,
+ svn_ra_local__get_merge_info,
};
Index: subversion/libsvn_ra_svn/client.c
===================================================================
--- subversion/libsvn_ra_svn/client.c (revision 22315)
+++ subversion/libsvn_ra_svn/client.c (working copy)
@@ -1936,7 +1936,6 @@
ra_svn_commit,
ra_svn_get_file,
ra_svn_get_dir,
- ra_svn_get_merge_info,
ra_svn_update,
ra_svn_switch,
ra_svn_status,
@@ -1953,6 +1952,7 @@
ra_svn_get_lock,
ra_svn_get_locks,
ra_svn_replay,
+ ra_svn_get_merge_info,
};
svn_error_t *
Index: subversion/libsvn_ra_dav/session.c
===================================================================
--- subversion/libsvn_ra_dav/session.c (revision 22315)
+++ subversion/libsvn_ra_dav/session.c (working copy)
@@ -1591,7 +1591,6 @@
svn_ra_dav__get_commit_editor,
svn_ra_dav__get_file,
svn_ra_dav__get_dir,
- svn_ra_dav__get_merge_info,
svn_ra_dav__do_update,
svn_ra_dav__do_switch,
svn_ra_dav__do_status,
@@ -1608,6 +1607,7 @@
svn_ra_dav__get_lock,
svn_ra_dav__get_locks,
svn_ra_dav__replay,
+ svn_ra_dav__get_merge_info,
};
svn_error_t *
Received on Sun Nov 19 05:13:15 2006