views:

1478

answers:

1

I have a SVNSERVE server set up to host multiple repositories.

Short question here

My question is really this: I have authz, passwd, and svnserve.conf in the main directory outside the repositories, and this seems to work, in the sense that changes here will give, or deny, access to the relevant repositories.

However, due to an error when using TeamCity, I've come to find that each repository also have their own sets of these files, but the contents there are almost completely empty. Do I need to replicate the relevant bits and pieces of the main configuration files down into each repository?


Tentative solution

Ok, it seems that the web-page I linked to below (this page) was correct after all. By editing the repository-local svnserve.conf file, and adding the single line:

anon-access=none

then it seems to work. Note that that's all I did as well. The main, global, outside-of-repositories svnserve.conf file and associated files still seems to contain all the relevant information, as changes here still grant or deny users access to the repositories, but adding that line made TeamCity stop complaining.

Running control-tests right now after removing the line again, just to see if it still fails.


Long story here

The directory structure is like this:

E:
 +-- Repositories
     +-- LVK
     +-- PrivateProjects
     +-- ExternalProjects
     +-- XYZ
     +-- etc.

Now, I in the Repositories directory, I have the following files (file contents are below):

svnserve.conf
authz
passwd

svnserve.conf looks like this:

[general]
password-db=passwd
authz-db=authz
realm=VKarlsen Subversion Server
anon-access=read
auth-access=write

authz looks like this:

[/]
lassevk=rw
*=r

[LVK:/]
lassevk=rw
*=r

[PresentationMode:/]
lassevk=rw
*=

and some other repositories etc.

and passwd looks like this (obviously not the right password though):

[users]
lassevk=MYSECRETPASSWORD

Now, what I'm wondering about is that TeamCity is complaining with an error message that says: "Failed for the root 'svn://localhost/PrivateProjects/VS.NET/LVK_ReleaseScript' #2: svn: Not authorized to open root of edit operation".

I found this page here, but it says to make sure you have the following in your svnserve.conf file:

anon-access=none

I do, however, have anon-access=read in the file, but my question is really this: Each repository also have a conf sub-directory with the exact same files as above, just not the same contents. In fact, apart from setting the Realm value to the same thing as my main svnserve.conf file, the files are completely empty.

Is this correct? Do I need to replicate the relevant bits and pieces from the main svnserve.conf file down into the configuration files for each repository?

For instance, here's the contents of the three files under the LVK repository:

authz:

[groups]

[/]

passwd:

[users]

svnserve.conf:

[general]
realm = VKarlsen Subversion Server
+1  A: 

I always thought you'd need to have at least svnserve.conf inside the conf/ subdirectory of each repository (since SVN wouldn't automatically know to look for it anywhere else). That's the setup I use with my own repositories: each one has its own copy of svnserve.conf, but there's only one global passwd and authz, to which all the svnserve.conf files refer by absolute path.

David Zaslavsky