tags:

views:

123

answers:

2

First here's some context on what I want to achieve.

I'm writing a small Django application for basic project management, something like a simplified Google Code and I want tight SVN integration, which means that I want to be able to manage user access rights. I also want my application to create the repository when a project is created, just like Google Code does.

Now the problem:

I could serve a single repository and pile all my projects in a root folder (like I presently do) OR start a svnserve daemon for each repository.

I can't use the single server setup since all projects would be treated as one big project, making revision numbering borderline useless and per project rights management impossible (well, I think).

I've found this article which describes mostly what I was about to do:

http://articles.slicehost.com/2007/9/6/multiple-repositories-and-subversion

However my co-worker thinks it's an overkill and I shouldn't do it.

For myself, I think that considering that I will hardly ever go over 100 projects this is a non-issue. And even if I unrealistically had 500 active projects, the server would probably cope just fine with 500 idle processes.

Who's right?

Or should I go for something else, like Mercurial?

+2  A: 

Go with multiple repositories. That's what I do, it's not overkill. I use something like VisualSVN Server Manager for managing them. It can even setup https and a reduced Apache server for you. (windows only)

Malfist
+1  A: 

IIRC Apache opted for one big repository v.s. many smaller repositories. I believe the differences driving the choice of approach are most pronounced if you need to share code across repositories. There are some tools and operations that simply don't work well with separate repositories. As I recall, there were some detailed comments in the release notes for the latest releases of either TortoiseSVN and/or Subversion which mentioned some of these limitations. I personally have hit a few of these land mines, in particular when working with third-party repositories.

FWIW - I use separate repositories since I do work for many different clients. VisualSVN Server, also mentioned by Malfist, is very nice it you are on Windows and makes it trivial to setup multiple repositories. Doing the same manually from scratch takes a lot more expertise, especially if you are using Apache HTTPD as the front end. Apache is the preferred approach, especially if you are exposing SNV to the Internet or need more control over access.

David Taylor