Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I solve "405 Method Not Allowed" for our Subversion setup?

We're serving our source code using VisualSVN Server running on Windows Server 2003. Recently, we split a portion of a project into a new project in its own repository, and then linked it back to the original project using svn:externals. Since then, we've been having issues when we try to commit files with Subclipse.

The error we're getting is:

svn: Commit failed (details follow):

svn: PROPFIND of '/svn': 405 Method Not Allowed (https://svn.ourserver.com)

Googling for a while didn't really help, and our configuration seems to be correct. It should also be noted that we've been running this server for a while now without these problems and apart from splitting the project into two repositories, no changes have been made to the server (i.e., configuration files are the same).

It should also be noted that these errors only appear when we try to check in multiple files at once. If we check in one file at a time there are no errors. Also, it only appears in Subclipse as far as we know right now, and Versions.app (OS X) seems to work fine, so that is our current workaround.

How do I analyze the error to find the cause and subsequently fix it?

I'm by no means an SVN guru and right now I'm clueless.


It seems we can check in multiple files in the same package, but not files from multiple packages. Also, when I "split" the project into two repositories, I imported the original repository with a new name. I did not do a dump and then import that dump. Could that be the source of our issues, and if so, how would I solve that?

After some jerking around it seems as though it is indeed related to when checking in files in different repositories. If I try to do a single commit in both repository A and repository B (referenced by svn:externals) at the same time, I get the error. Versions.app handles this correctly, but I guess it might just be doing two commits, not a single one. Subclipse fails miserably. For now, we simply do multiple commits, one for repository A and one for repository B, that works just fine. If anyone smarter than me could fill in the details why this is happening, whether or not this kind of setup is stupid, etc., please go right ahead.

like image 700
Marcus Stade Avatar asked Nov 14 '22 16:11

Marcus Stade


1 Answers

Prerequisite: Hire a good administrator

Problem: VisualSVN Server uses path-based authentication for all and any parts of repos inside it. Default access-level (AFAICR) - is * = r for root and this setting inherited into all nodes below (repository's root also) and when you try to commit into a new repository without good ACLs for it (or misconfigured) you get a problem

Solution: Check Property of the new repository in the VisualSVN Server MMC-applet, and check permissions and users. In the simplest case, the user, who have write-rights (can commit) in a super-repository (repository with externals) have to have (if it is allowed by policy) write-rights in the sub-repository (repository with linked resources).

like image 138
Lazy Badger Avatar answered Feb 09 '23 00:02

Lazy Badger