Sunday, 31 July 2005
svn.sabi.net → dev.sabi.net
svn.sabi.net is now dev.sabi.net (svn.sabi.net still works, too). I have by necessity removed some of the gimmicks such as the XML repository browser and ViewCVS, since my new web host doesn’t support the former, and Trac is much better than the latter. However, it’s no longer run from my desktop Mac and cable modem, and Trac is now using FastCGI/lighttpd instead of plain CGI/Apache, so the response time and throughput should be significantly improved.
For anyone who’s using one of the Subversion repositories, you will need to run svn switch on your working copies, as follows:
% svn switch --relocate http://svn.sabi.net/repos http://dev.sabi.net/svn
Unfortunately, Subversion does not understand HTTP redirection, and even the awesome power of mod_rewrite is not enough to save me. RewriteRule ^repos/(.+) /svn/$1 [R] gives me svn: PROPFIND of '/repos/dev/trunk/StreamVision': 301 Moved Permanently (http://svn.sabi.net), making the redirection a permanent one doesn’t help, and simply rewriting gives me:
% svn up svn: REPORT request failed on '/svn/dev/!svn/vcc/default' svn: Unusable URI: it does not refer to this repository
If you’re just using a Web browser to browse the repository, then you will be correctly redirected.
I’ve got some Apache/Trac/lighttpd configuration advice to share, but first I need to eat dinner…
You could try a reverse-proxy. Turn on mod_proxy and then give the the RewriteRule a [P] flag instead of the [R] flag.
http://httpd.apache.org/docs/2.0/mod/mod_proxy.html#forwardreverse
http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule
[P] does the same as rewriting. The absolute URLs are embedded in the Subversion output; I could probably run a filter over it to change the URLs, but that scares me.
It would really be nice if Subversion handled HTTP redirects.
Thanks for the advice.
Have you solved this problem somehow? I have a similar problem.
Thanks for advice.
My only solution was as above, to run svn switch. Perhaps you should consider bringing this up on one of the Subversion mailing lists if it is a real problem for you.