views:

154

answers:

5

Is there a single server I can use to store/manage repositories which could then be accessed by the common/modern open-source (D)VCSs such as SVN, Git, Mercurial, bzr, etc and still keep a good level of compatibility with all of them?

We have a large number of users on SVN, some on Git, and a couple using mercurial but none are using any overly advanced features at the moment, but hitting 100% support for each VCS isn't a priority. Coping with them all with one server is more important, especially if users can check in via SVN while another checks out via Git.

+5  A: 

If your main users are git and SVN then your can simply use an SVN server. Git supports checkout of an SVN server and checking changes back into the server using git-svn. You can probably get similar functionality with the other distributed SCM tools (a quick google for it with mercurial shows there is some third-party support for such features while native support is being considered).

For now, that is probably the simplest solution - keep an SVN server and supply instructions for your users to checkout the repository with their favoured tool.

workmad3
hgsubversion is the equivalient for git-svn.
tonfa
+1  A: 

I don't understand the question. Any linux box can support subersion, git, mercurial, bazaar, CVS and more, you just have to install any linux distribution and configure each service.

Bluebird75
digitala
all of them can be used with a linux box and a sshd server. All of them.svn has its own server software indeed, which is optional. You can configure it to work over an ssh session.git and mercurial only need ssh + their own client being installed.You need more server side software if you want to provide some html visualisation of the repositories, but this is not part of your question.And even like that, hg web will trigger mercurial web server, and I believe it's as easy with git.
Bluebird75
A: 

If you wanted to ask if there are forges / software hosting sites that support different version control systems, the answer is: yes, they are (Savannah, SourceForge, BitBucket, Assembla, Unfuddle, Codebase,...). Although I think it is one SCM per project...

Jakub Narębski
A: 

Note that SVN, git and others work in different ways and have different features. If you will settle on one solution, that solution will only have features that are common to all VCS -- probably annoying developers who chose git/svn/hg for their specific features.

You wrote in comment that "freelancers & remote workers who are only comfortable certain VCSs" -- and that's what I mean too.

There are some workarounds, like tailor or already mentioned git-svn and hgsubversion, but from my own experience they don't work very well.

liori
A: 

I've had a good experience using Unfuddle for hosted Git and Subversion repositories. You can probably get support for hosting the other types of repositories at some of the larger code-hosting sites, but I'd expect it'll cost more and managing repositories using more than two different types of DVCS could be difficult in the long run.

For developers who want to use Git, but the hosted repository is SVN, you should checkout git-svn (see the chapter in Pro Git).

Update: Codebase offers hosted Git, Mercurial, and Subversion. Found them under Git Hosting on the official git website.

calvinf