| API ERRATA -- $Id$ |
| |
| Root Cause of Errata: |
| Library(s) Affected: libsvn_ra, RA servers (svnserve, mod_dav_svn) |
| Function(s) Affected: svn_delta_editor_t |
| New Behavior in: 1.8 (default), 1.4 (client optional) |
| Related Issues: #2932, #3628 |
| |
| |
| == Details of Previous Behavior == |
| |
| The ra_neon (formerly, ra_dav) drives delta editors (svn_delta_editor_t) in |
| accordance with the constraints of that API [1]. |
| |
| [1] ../../../subversion/include/svn_delta.h:svn_delta_editor_t |
| [1] http://subversion.apache.org/docs/api/latest/structsvn__delta__editor__t.html#_details |
| |
| |
| == Details of New Behavior == |
| |
| The ra_serf client-side HTTP/DAV layer (introduced in Subversion 1.4, and |
| made the only DAV layer in Subversion 1.8) does not respect all the |
| ordering constraints of the delta editor API: it may open two sibling |
| directores at the same time, which the delta editor API does not permit. |
| |
| |
| == Rationale for Change == |
| |
| The ra_serf layer operates on sibling directores simultaneously in order to |
| improve overall speed by using the HTTP protocol more efficiently: for |
| example, by sending more requests without having to wait for the server's |
| responses in all cases. |
| |
| ### other reasons? caching? httpv2? |
| |
| |
| == Impact on API Users == |
| |
| Server-side editor implementors cannot both depend upon being driven in |
| the documented directory-depth-first order and support ra_serf clients. |
| Server-side editors that will only be accessed over ra_neon/ra_svn/ra_local, |
| or that do not depend upon the depth-first restriction, are not affected. |
| |
| Editors shipped with Subversion itself are not affected. |
| |
| It is expected that this issue will be revisited as part of the "Editor v2" |
| effort (see issue #3628). |