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

Reply via email to