Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I recently encounter a problem described in . Since the Subversion repository files served by HTTP(svn 1.7) does not support download resume, is there any reverse proxy technique that can cache the svn files then serve to clients with resume support?

share|improve this question
Are you just trying to serve the files, or do you need the full SVN WebDAV functionality in addition to allowing Range requests? Can you explain your use case (why do you need Range requests)? – Shane Madden Sep 24 '12 at 1:56
Currently, serving files via http is enough, in premise that those files are stored in my SVN repository. – Jimm Chen Sep 24 '12 at 2:10
Can you clarify what you're needing Range support for? It seems like just having a post-commit hook export to your web root might work just fine.. but I'm not sure if that makes sense, depends how you're using it. – Shane Madden Sep 24 '12 at 6:03
I need Range support so that user can resume a large file(e.g. 100MB) download on a poor network condition. post-commit hook may be a reasonable idea, however, I think it will not be able to cope with file fetching with peg revision in URL(get an older version of a file). – Jimm Chen Sep 24 '12 at 8:54

Since svn 1.7.6, an Expires: header is sent in response to certain requests (commit message) -- so yes, a reverse proxy like nginx will cache them. I didn't test this and is still running 1.7.5.

Also, it appears that range requests worked in early svn versions (older than 1.2) -- svn-users post from 2005; you could ask for advice on that list.

share|improve this answer
Expires header? My Windows SVN server happens to be 1.7.6(binary from CollabNet webset). When I try wget -c -d, I do not see the Expires header. Can you further explain it? – Jimm Chen Jan 9 '13 at 1:41
Sorry, I misread the commit message; that change is not present in any released version yet -- it was not merged to 1.7.x release branch. Plus, it actually adds Cache-Control: header, not Expires: – sendmoreinfo Jan 9 '13 at 13:35

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.