Evgeny Kotkov <evgeny.kot...@visualsvn.com> writes: >> Index: subversion/mod_dav_svn/version.c >> =================================================================== >> --- subversion/mod_dav_svn/version.c (revision 1820704) >> +++ subversion/mod_dav_svn/version.c (working copy) >> @@ -152,9 +152,6 @@ get_vsn_options(apr_pool_t *p, apr_text_header *ph >> apr_text_append(p, phdr, SVN_DAV_NS_DAV_SVN_INHERITED_PROPS); >> apr_text_append(p, phdr, SVN_DAV_NS_DAV_SVN_INLINE_PROPS); >> apr_text_append(p, phdr, SVN_DAV_NS_DAV_SVN_REVERSE_FILE_REVS); >> - apr_text_append(p, phdr, SVN_DAV_NS_DAV_SVN_SVNDIFF1); >> - apr_text_append(p, phdr, SVN_DAV_NS_DAV_SVN_SVNDIFF2); >> - apr_text_append(p, phdr, SVN_DAV_NS_DAV_SVN_PUT_RESULT_CHECKSUM); >> apr_text_append(p, phdr, SVN_DAV_NS_DAV_SVN_LIST); >> /* Mergeinfo is a special case: here we merely say that the server >> * knows how to handle mergeinfo -- whether the repository does too >> @@ -297,6 +294,19 @@ get_option(const dav_resource *resource, >> { "create-txn-with-props", { 1, 8, 0, "" } }, >> }; >> >> + /* These capabilities are used during commit and when acting as >> + a WebDAV slave (SVNMasterURI) their availablity depends on >> + the master version (SVNMasterVersion) rather than our own >> + (slave) version. */ >> + struct capability_versions_t { >> + const char *capability_name; >> + svn_version_t min_version; >> + } capabilities[] = { >> + { SVN_DAV_NS_DAV_SVN_SVNDIFF1, { 1, 7, 0, ""} }, >> + { SVN_DAV_NS_DAV_SVN_SVNDIFF2, { 1, 10, 0, ""} }, >> + { SVN_DAV_NS_DAV_SVN_PUT_RESULT_CHECKSUM, { 1, 10, 0, ""} }, >> + }; > > I would be fine with this approach as well, but perhaps with a few tweaks:
I also notice that this patch only advertises the new capabilities if the server is configured to enable HTTPv2. This is probably unintended, as I think that there is no reason to disable these PUT-related capabilities (such as being able to parse svndiff1/svndiff2) if the server is configured to prefer HTTPv1 protocol with SVNAdvertiseV2Protocol off. Thanks, Evgeny Kotkov