Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

We are bootstrapping a new team of very small size (say 2-5) my question is: which type of version control works best for these kind of teams, either centralized or distributed.

share|improve this question
    
Try SVN tortoisesvn.tigris.org This is best 4 you. –  Vijesh V.Nair Dec 29 '10 at 6:23
    
What dó you want to write, and what platforme? –  user1249 Dec 29 '10 at 10:09

8 Answers 8

up vote 29 down vote accepted

Distributed all the way, there is really no point for centralized anymore IMHO, specially if you are talking about team development.

Another vote for Mercurial, no hassles to setup under windows and bitbucket.org has free repositories (that can be private) with unlimited space.

If you are planning to work on a open source project, git and Github seem to be more adequate/popular. However, if you haven't ventured into DVCSs, I recommend you start with Mercurial and this awesome guide.

share|improve this answer
1  
+1 for that awesome guide from Joel Spolsky. Great stuff. Also, even if you are very small now, like @dukeofgaming says, there is no point for starting out centralized anymore. Even if you're only planning slightly ahead. –  Mark Freedman Dec 29 '10 at 5:06
    
For projects caring about software freedom, gitorious is probably better than github. –  Lars Wirzenius Dec 29 '10 at 10:21
    
@Lars: What do you mean by "software freedom"? –  Richard Everett Dec 29 '10 at 11:02
5  
Even as a lone developer Mercurial makes perfect sense. –  Oliver Weiler Dec 29 '10 at 12:16
    
amen @Helper Method, that is how I started to use it –  dukeofgaming Dec 29 '10 at 15:19

the one that you will all use consistently

[personally, i like Mercurial]

share|improve this answer
15  
As long as it's not SourceSafe. –  Robert Harvey Dec 29 '10 at 4:40

Probably the best answer is "whatever you're comfortable with." Even when working on personal stuff, I use Git. It seems to do a pretty good job of scaling both up and down and my limited experience with Mercurial is about the same.

share|improve this answer
    
From my limited experience with Git -- if you're on a Windows platform, Git tools are not ready for prime time there yet. Stick with Mercurial (or Kiln). On other platforms, Git is probably fine. –  Mark Freedman Dec 29 '10 at 5:08
1  
Msysgit works nicely if you are familiar with a Shell prompt. –  user1249 Dec 29 '10 at 10:10
    
@Mark you are certainly correct if folks don't want command line. However, Git command line (with a shell as Thorbjorn points out) is fine. I only program on Windows and am using Git for VS projects. There's certainly nothing that approaches TortoiseSVN and AnkhSVN for Git though. –  MIA Dec 29 '10 at 16:48

I think you should choose whatever you are comfortable with. In a small team, you will not have different code-trees (like the Linux-kernel), so a central repository is OK. But you can have this setup also with distributed VCS. So I would go with popularity and personal experience. Popular are SVN, git and Mercurial. You should decide, which o them is best used with your team (experience, tool-support in your choosen IDE etc.).

share|improve this answer

It really depends of whether or not your developers are going to develop a lot of code offline or not, but only to choose between a distributed or centralized repository, since this is the first thing you should decide. Then, if you decide that a centralized approach works better than SVN is all you need. On the other side if you go for a distributed approach than go for git, even on windows it's good enough since now you have tortoise git (the same interface that also exists for svn). Also, don't count so much on the IDE support because you might get a nasty surprise if you ever use that, and you might find that files that shouldn't be commit do get committed in your behalf by the IDE.

share|improve this answer

Ask your team, if some one want to take care of it. It is much better to have stable system, and responsible person, than good system when none care about it, and none able to restore it from backup.

If there is such person - he will already know what to use, so just accept his decision. If not - get some hosted solution. It would be very stupid try GIT (one of the best) if all of developers never touched Shell/Linux.

It also depends of number of "nontechnical" people, that need to read/contribute. Just make sure that they could use it, and there are tools available.

share|improve this answer

SVN is widely supported in tools. Tooling is the key; different people will have different skill sets. Some will prefer command line, some will prefer IDE based tools, some will prefer graphical tools. At the moment SVN seems to be the most widely supported tool.

Other than that Mercurial or Git.

share|improve this answer

I think that in small companies there are arguments for having certain things centralized. (Think for example about offsite backup. When you only have 2 persons working on a project and they are housing in the same building and there is a fire, decentralized to all of two computers might not be enough.)

However: having a partly centralized solution doesn't limit you to a centralized system. You can just push to an outside server with something like git or mercurial.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.