Hi,
Issue 1846 (and also my blame optimization, but that's awaiting
proof-of-concept performance testing) brings up the question how to handle
extensions to the RA layer between 1.x releases. There are four
parts to this:
a) Where to put the fallback?
b) the svn_ra_plugin_t
c) ra_dav extensions
d) ra_svn dito.
a) Fallback
For backwards compability, we need a fallback implementation somewhere in
the client. We can implement the callback in terms of other RA layer
functions where the new functionality would be used.
A question is how to detect that the functionality is missing. Is that
what SVN_ERR_RA_NOT_IMPLEMENTED is for?
b) svn_ra_plugin_t
This structure will be extended and all implementations will be extended
with the new functions. There is no compatibility to worry about here, as
earlier discussed.
c) ra_dav
The extensions under discussion are implemented as custom REPORTs. My
question here is how to detect that such a REPORT is not available. Can we
use avail_reports in some way here?
d) ra_svn
The extensions will be implemented as new commands with responses,
resembling the log command.
Regarding dection of the command availability, if I understand correctly,
the server just announces a new capability for each new command in the
greeting.
Does this seem reasonable?
Regards,
//Peter
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Jun 7 22:34:13 2004