It seems to be quite hard to find good references about the pros and cons of these Version control systems.
If someone can make a short and neat paper about it, mirror it and post it here, I think a lot of people would be less confused.
What version control system should I use ? I think it depend on the project and on the number of people working on it. However there are some commonly accepted facts, for instance: Git is the fastest, CVS is stable and tested, SVN is simple and Mercurial seems more Windows friendly.
Moreover, the paper should present evidences, link to benchmarks and explanation for each statement.
I've written on stackoverflow because most of the readers here should be experienced programmers and know where to ask to get proper contributions OR even write the paper (that would be awesome).
Note: This question is not about the relative merits of one tool over another (there are many post on those topics), but more about the objective criteria which can be used to differentiate them and used to choose one for your project.
Git is one of the best version control tools that is available in the present market. Provides strong support for non-linear development. Distributed repository model. Compatible with existing systems and protocols like HTTP, FTP, ssh.
Many people prefer Git for version control for a few reasons: It's faster to commit. Because you commit to the central repository more often in SVN, network traffic slows everyone down. Whereas with Git, you're working mostly on your local repository and only committing to the central repository every so often.
Subversion is centralized which means data is only stored in one place. This keeps things simple. You have the option of working with an intuitive graphical interface if you choose an SVN GUI client such as TortoiseSVN or Cornerstone 3. Contains the full revision history of all directories, renames, and file metadata.
SVN is not dead at all. It's is still in extremely wide use, and it's not going anywhere anytime soon. SVN is much simpler to use than distributed version control, especially if you're not actually running a distributed project that needs distributed version control.
Martin Fowler on his bliki:
http://martinfowler.com/bliki/VersionControlTools.html
When it comes down to it, "which vcs is right for me" is a heavily subjective question that depends on a lot on the parameters of your workflow needs, your project needs, and just your group's general style.
If you're looking for details of how the empirical features of each VCS compare, take a look at the following charts:
http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
Really though, anything beyond that will be a subjective opinion - even if you do empirical testing, the best you'll get is a set of different comparisons that point out that one VCS excels in a given area and another in a different one. How you rank those areas in terms of importance is up to you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With