33
votes

I recently upgraded the bitnami trac stack (from 0.12.2-5 to 0.12.3) on our server and after reconfiguring all the scripts and repositories all seemed well. I was able to login and view the source code and browse through the repository using Trac. I tested checking out the source code and I could browse the repository via both visualsvn and tortoise.

But when it came to commiting changes made there was a problem. I got a path not found exception. Looking into the error log on the server, all I could see was that all GET requests were fine, but POSTs had an incorrect URL (!svn/me was appended at the end).

After spending a couple of hours going through logs and configurations, since Subversion was upgraded from 1.6 to 1.7, this include the new HTTPv2 protocol. This protocol somehow affected access to the SVN repositories, but only seems to affect POSTs and not GETs.

Workaround

The way to disable this new feature is by changing the mod_dav_svn configuration as follows:

DAV svn
...
SVNAdvertiseV2Protocol Off

The issue was then resolved and we could check in our changes again.

4
This may not fit the normally accepted Q&A format of SO, but who cares? It saved me. I initially saw this and brushed it off as I didn't see an answer, but after trying practically everything else for hours, stumbled upon it again. Thank you!Jhong
This question is a perfect answer!maialithar
You probably should edit this post to make it a question and then edit the post below to make it an answer to your question. That way you can mark it as solved!Benjamin Leinweber
mail-archives.apache.org/mod_mbox/httpd-users/201203.mbox/… -- here the same issue is discussed, but there is no solution :(KovBal

4 Answers

8
votes

I resolved this by disabling the HttpV2 protocol. To disable it you can make changes to the mod_dav_svn configuration locations as follows:

DAV svn ... SVNAdvertiseV2Protocol Off

3
votes

Just wanted to add a little to this "question". I was getting the same error message after I relocated a SVN server from one machine to another. A 500 error and "!svn/me" was appended to the end of the SVN server URL, nothing would commit but everything else worked. After hours trying numerous things, it turns out that the user account VisualSVN / Apache was using didn't have write access to the SVN repo's directory. So I gave the account modify / write access ot he SVN repos directory and committing worked. Which actually makes sense because everything but Commit was working. Not sure if this will be helpful for others but I thought I would post it here regardless. Thanks for the question, helped me understand where I went wrong.

0
votes

This was a problem on https://trac-hacks.org, which serves Trac at / and Subversion at /svn. The issue was initially worked around by disabling SVNAdvertiseV2Protocol. Later the issue was resolved by serving Trac from /trac and redirecting / to /trac. However, that solution was not ideal due to the redirect. Another admin on the project found the solution of adding:

Alias   /svn            /var/www/000-default/svn

I'm not sure why this works, but it effective and doesn't require the redirect and serving Trac from /trac.

-1
votes

My repository has about 700 000 files and 660 folders. I had the same error, and was sure that SVNAdvertiseV2Protocol Off is not the right way to go. Adding

<IfModule dav_svn_module>
    SVNInMemoryCacheSize 262144
    SVNCacheFullTexts on
    SVNCacheTextDeltas on
</IfModule>

to /etc/apache2/mods-enabled/dav_svn.conf fixed the issue for me.