Subversion Error “Access to ‘/svn/my-repo-name/!svn/act/some-guid’ forbidden” When Trying To Commit

You have just created a directory on your drive, successfully did a Check Out of a repository, made some changes and now are committing them. However, you are getting this unclear error and are asking yourself – what does it mean and why am I getting this? The “my-repo-name” would be the name of the repository you are committing your changes to and “some-guid” would be some GUID, for example something like ab167f87-1f2b-12c6-b27d-a8e6fc7c612.

The reason for this, my friend, is case sensitivity – I have not tried it on *nix, but yes, on Windows it matters. If you created a repository called “my-repo-name” on the server, but checked it out as “My-Repo-Name” – you will not be able to do much with it because the URL of the repository on the server does not case-sensitive match what your subversion client stores in your working copy.

If you did do a mistake and just realized that now you have a problem because you have modified files that you cannot commit – do not worry. Simply use the switch command to relocate your working copy to a new address by using the relocate switch, selecting the current case as the source and the correct case as destination. For example:

svn switch --relocate http://my-svn-server/My-Repo-Name https://my-svn-server/my-repo-name

When you run this command, make sure you run it in the directory that is the root of your working copy. If you have TortoiseSVN – simply select TortoiseSVN > Relocate from the context menu, and select your source (wrong URL) and destination (correct URL).

Even if you have modified files, relocating your working copy will not be a problem, as long as it a case-sensitivity issue of your URL.

This entry was posted in Subversion and tagged , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *