views:

70

answers:

4

We have a VMWare image running a gforge instance in our local network. We would like some external folks to be part of the dev process. We would like to keep this repository as the master SVN repository. What kind of options are available for sharing the code with the external resources and merging it back into our local repository.

Other options could be to host this entirely outside our network (on some of the hosting providers), this is not acceptable as it allows employees to access the code outside our network.

Am looking for suggestions to resolve this.

+6  A: 

SVN is not a distributed VCS. If you want to stick with SVN, you will have no real alternative than to give them access to your local server from outside in some way.

If you want them to be able to commit to a separate, external repo that is not physically connected to your internal server, and to merge their changes into the central repository manually, you will need to look at a distributed VCS like Git or Mercurial.

Pekka
+2  A: 

Subversion is a centralized (vs. distributed) version control system. It's designed to allow collaboration by performing concurrent operations against the one and only repository. So you basically have two options:

  1. Stick to centralized version control and allow external access to the repository (most routers and firewalls allow to redirect specific ports so it should not be a big issue).
  2. Switch to distributed version control (Git, Mercurial, Bazaar...).

Anything else would be a complicate workaround.

Álvaro G. Vicario
+1  A: 
  • You could set up a VPN and let them commit directly to the master.
  • You could switch do a distributed VCS like Git.
  • You could set up another SVN for them and merge them. I think that would involve a major headache.
Martin
+1  A: 

an important consideration for you should be:

if you're looking at developers working and committing the changes they make to their code regularly - then SVN is good.

if you're looking at developers who'll work on large chunks on their own and want to merge their codebase once they're sure about the integrity of the stuff they worked on - go with Git or Mercurial.

i'd also like to add that Git can do a mighty good job even with continuous integration, however, if your developers are more familiar with SVN based tools, then it might not be that useful to incur the overhead of making them learn a new tool.

anirvan