Hey Nick! Thanks for looking into this.
On Thu, Feb 9, 2012 at 20:29, Nick Hengeveld <ni...@github.com> wrote: > On Wed, Feb 8, 2012 at 12:59 PM, Greg Stein <gst...@gmail.com> wrote: > >> So... this isn't really so much about "svn must allow for HTTP/1.0" >> (yes, we'll work on it), but that github could also provide better >> service overall by updating its proxy. > > > I've been looking into what it would take to update our proxy. I have an > nginx > configuration in my dev environment that handles requests with chunked > transfer-encoding and we could feasibly deploy something like this to > production. Awesome! > However, I'm now getting a different error on the client: > > svn: E235000: In file 'subversion/libsvn_ra_serf/update.c' line > 1769: internal malfunction > Aborted > > From what I can see at > https://github.com/apache/subversion/blob/trunk/subversion/libsvn_ra_serf/update.c#L1698-1771 > it looks like the client is trying to process an add/open file. The > checkout > I'm testing is small and contains only one file, and this is what the server > is returning for that file: > > <S:add-file name="README.txt" > > <D:checked-in><D:href>/github/sample/!svn/ver/3/trunk/README.txt</D:href></D:checked-in> > <S:set-prop name="svn:entry:committed-rev">3</S:set-prop> > <S:set-prop > name="svn:entry:uuid">faa06a63-5b49-ecd5-b7fc-ce57b7db7bff</S:set-prop> > <S:set-prop > name="svn:entry:committed-date">2012-02-09T22:12:11.000000Z</S:set-prop> > <S:set-prop name="svn:entry:last-author">subversion.user</S:set-prop> > <S:txdelta> > U1ZO > AQAAMQs4AnicazAEAAEzALIxeJwLycgsVgCixDyFotTElNxUHYXSgpTEktQUhbLMRIVEBUM9c4XknMzUvBI9rsh8PS4AnrgP > sw== > </S:txdelta> > <S:prop><V:md5-checksum>5fa5200f0f095d120c13870e107dfb7a</V:md5-checksum></S:prop> > </S:add-file> The S:txdelta element was not requested by the client, so it freaks out when it sees the unknown element. Control over whether the txdelta should be sent/not is within the update-report that the client sends to the server. Take a look at the "send-all" attribute on the S:update-report in the request. The txdelta element should only be delivered to the client when send-all=true. ra_neon wants the embedded txdelta within one giant response. ra_serf only wants a barebones "what changed", and then it will issue multiple GET calls to fetch the deltas individually. serf will pipeline these GET requests over several connections. >... Cheers, -g