I run a write-through proxy for svn.apache.org using mod_dav_svn's SVNMasterURI directive. Commits now fail when using trunk on the client and slave because they negotiate svndiff2 which the s.a.o master does not support.
I can reproduce locally using a trunk slave and 1.9 master: $ svn import -mm repo/format http://localhost:8888/slave/f Adding repo/format svn: E185000: Svndiff has invalid header In the past we supported different versions on the master and slave and we introduced the SVNMasterVersion directive to configure it. Unfortunately that information is not immediately available in get_vsn_options() where the server advertises some commit features. If I simply remove the SVN_DAV_NS_DAV_SVN_SVNDIFF2 header from get_vsn_options() then I can commit. I'm not sure how we fix this. Do we delay the svndiff2 negotiation until later in the commit? Do we abandon mixed master/slave versions? There is a similar problem with SVN_DAV_NS_DAV_SVN_PUT_RESULT_CHECKSUM, the slave advertises support but the master does not provide it. In this case the commit does not fail although neither the client nor the server sends X-SVN-Result-Fulltext-MD5. I think that means we commit without checksum verification. -- Philip