|  | NOTES ON VERSION COMPATIBILITY | 
|  |  | 
|  | This file attempts to document the compatibility issues between | 
|  | different Subversion clients and servers. More specifically, where we | 
|  | want to change our (WebDAV) protocol usage in an incomptabile way, and | 
|  | our stepwise plan towards rolling out that change. | 
|  |  | 
|  |  | 
|  | BINARY PROPERTIES | 
|  | ================= | 
|  |  | 
|  | Change: to signify that a property is binary, we will add an attribute | 
|  | onto the property element that specifies its encoding (base64 | 
|  | or standard XML entity escaping). | 
|  |  | 
|  | Problem: old clients and servers will not be looking for this | 
|  | attribute, and will not decode the contents appropriately. | 
|  |  | 
|  | The current plan from issue 1015: | 
|  | --------------- | 
|  | Okay, I've decided to propagate this functionality in three stages, | 
|  | with a couple of milestones between each stage: | 
|  |  | 
|  | (1) server and client learn to recognize and handle the new | 
|  | 'V:encoding' attribute on properties.  at this point, no binary | 
|  | properties will actually be coming across the ra-dav wire.  (0.20 | 
|  | milestone) | 
|  |  | 
|  | (2) server starts to transmit non-XML-safe properties with the | 
|  | 'V:encoding="base64"' attribute and the property value | 
|  | base64-encoded.  during this interim period, clients will be to get | 
|  | binary properties from the server, but will not be able to commit | 
|  | new or modified binary properties.  (0.21 milestone) | 
|  |  | 
|  | (3) clients starts to transmit non-XML-safe properties with the | 
|  | 'V:encoding="base64"' attribute and the property value | 
|  | base64-encoded.  this is the moment of full support.  (0.22 | 
|  | milestone) | 
|  |  | 
|  | All the code for full support will be in place, but disabled | 
|  | functionality will be wrapped in SVN_DAV_FEATURE_BINARY_PROPS | 
|  | #defines. | 
|  |  | 
|  | When stage 2 is ready to go into 0.21, we just remove the #defines | 
|  | from the code in mod_dav_svn, commit, and reset this issue to have a | 
|  | 0.24 milestone. | 
|  |  | 
|  | When stage 3 is ready to go into 0.22, we just remove the #defines | 
|  | from the code in libsvn_ra_dav, lose the #define itself from | 
|  | svn_dav.h, commit, and close this issue. | 
|  | --------------- | 
|  |  | 
|  |  | 
|  | REPOSITORY UUIDS | 
|  | ================ | 
|  |  | 
|  | Change: | 
|  |  | 
|  | Problem: | 
|  |  | 
|  | Plan: | 
|  |  | 
|  |  | 
|  | PROPERTY NAMESPACES | 
|  | =================== | 
|  |  | 
|  | Change: | 
|  |  | 
|  | Problem: | 
|  |  | 
|  | Plan: | 
|  |  | 
|  |  | 
|  | HANDLING OF UNKNOWN XML ELEMENTS | 
|  | ================================ | 
|  |  | 
|  | Change: | 
|  |  | 
|  | Problem: | 
|  |  | 
|  | Plan: | 
|  |  | 
|  | [note: need to review any "else" conditions to ensure we don't fall | 
|  | into them for unknown/future props; some if constructs might have | 
|  | assumed only (say) three elements were possible, so only tested for | 
|  | two of them, and fell to the else for the third] |