views:

2601

answers:

44

Hi all,

This is a placeholder to version control system overview.

What i want to do here is :
1) List all tools used in the industry.(please provide a link to the tool discussed).
2) Gather ppl opinion on each tool.(Please back up your opinion with facts i.e provide advantages and disadvantages)

Cross Links: What is your bug/task tracking tool (FAQ)

Please put each tool in separate answer and please make it community owned wiki to give an option to add/edit to as many ppl as possible.

+42  A: 

Subversion with Tortoise

GUI Junkie
I wanted to upvote based on svn, why ty it to tortoise?
hasen j
So go ahead and list "svn w/o tortoise". Watch all the upvotes (heh)
gbarry
svn is independent. Tortoise integrates with the File Manager.
GUI Junkie
+1  A: 

Rational ClearCase with UCM
(useful because we have many different projects which must be deployed in a single production platform, so UCM helps us to keep track of all the configurationS and ensure the same configuration list has been used by all involved project)

Otherwise, subversion for smaller stand-alone project.

VonC
+13  A: 

Git is the way to go. It beats anything else speed-wise and it's dead simple to use. Not to mention the easiest branching and merging I've ever seen.

There are Windows versions available as well, such as MSysGit.

It has two great GUI tools that one should use:

  • Gitk to inspect your and other people's changes and history
  • git-gui to add new files, commit and revert changes

Gitk can also be used to cherry-pick the changes from other people that you want to pull into your repository, and git-gui can be used to cherry-pick your own changes that you wish to commit for others to see.

Milan Babuškov
Well.. dead simple in simple collaboration. When you enter patch management, sending/approving chain or direct index manipulation - then you need some more serious knowledge. Using porcelain only - fine; Enter plumbing - you need to know what are you doing.
Marcin Gil
Also: there is a MSysGit for which can be safely used with normal 'cmd' of Windows or supplied git-shell. Not all stuff is working (git-svn) but it's much better than having to run Cygwin.
Marcin Gil
I actually tried WinGit and it works fine, but I'm lacking gitk
Milan Babuškov
[MSysGit](http://code.google.com/p/msysgit/) has gitk.
Marcin Gil
I'm stuck on svn until better git ide-integration emerges
Dan
Gitk works great with MSysGit - thanks.
Milan Babuškov
it's not linux-only!!
hasen j
I can't recommend git for our company for two reasons. (1) git in Windows can't handle Unicode filenames. (2) DVCS all have the issue of their work flow not being able to handle non-mergable files, e.g. Word and Excel docs, schematics, many proprietary binary file formats.
Craig McQueen
2007-2008 Subversion was fashionable, 2009-2010 it's Git. 2011 it'll be ____
Chris S
+1  A: 

CVS: 1 2

Advantages:
1. Free
2. Stable
3. Widely used
4. Supported on many platforms

Disadvantages:

  1. Can't group change sets (i.e changes for more than one file)
  2. Do not keep history on file/directory changes (move/delete/rename)
  3. Tagging/checkout is slow for big repositories

Feel free to add more

Ilya
What advantage if any is there for CVS over SVN?
Gregg Lind
It's not really supported, new development has ceased.
niXar
I would say that CVS is rock solid and stable. Few years back when we considered SVN we did not fill that it's mature enough. I don't know what is the situation right now
Ilya
svn is a better than cvs and is actively developed. your #3 is not so true anymore :) - almost everybody i know switched to svn/distributed tools.
webwesen
A: 

For commercial CM tool reviews checkout this: http://www.cmcrossroads.com/content/blogcategory/38/228/

grigy
+7  A: 

I use Subversion with Eclipse integration from Subversive.

Tools to avoid :

CVS since SVN is better on all regards

SourceSafe since it can corrupts files

David Pierre
+1  A: 

I recently used SourceAnywhere Hosted, it suited my needs well. Some benefits are:

  • Relatively cheap (pay per programmer per month). Stop paying per user when you don't need it
  • It's hosted, so it's quick to set up, fully managed including backups. All you have to concentrate on is producing software
  • It looks like and works like VSS. Good for some people (myself), probably not everyone's preference.
  • Works well for developers working remotely using the internet (no VPN).

http://www.dynamsoft.com/Products/SourceAnywhere-Hosting-Version-Control-Source-Control.aspx

Enrique
+20  A: 

Mercurial.

  • Simple command set
  • Written and extended in Python
  • Easy learning curve for git users
  • Fast, without git rebase
  • TortoiseHg: Windows GUI like TortoiseSVN, under development
skymt
can you add a link to the tool please
Ilya
+1  A: 

We also use Subversion with Tortoise SVN but in my oppinion its a bit a pain in the neck. I don't know if it is the Tortoise program, Subversion itself or even Windows. However, everytime I do a modification check, there is a terrible hard drive activity. I think its related to the everytime recursive scan of the .svn subdirectories that makes it this expensive.

Personally I would stick with git, too. It doesn't have those subdirectories and maintains all code tree information in one central place. I also like the distribution feature of git, so I don't have to bother with central branches that no one ever is going to need.

There are two nice Google TechTalks which introduce git a bit more and show it's advantages over other SCM systems. I think they both give a good overview.

http://www.youtube.com/watch?v=8dhZ9BXQgc4 with Randal Schwartz

and

http://www.youtube.com/watch?v=4XpnKHJAok8 with Linus Torvalds

Markus Lux
+2  A: 

darcs

Advantages:

  • very easy to set up a repository
  • easy to use
  • very powerfull
  • nice theory about patches
  • distributed (unlike svn/cvs)

Disadvantage:

  • not very easy to get working on windows
Jan de Vos
thank you very much this is exactly what i meant.
Ilya
Please add the link to the tool as well
Ilya
Actually, I've never had any trouble getting darcs to run on Windows.
Dana
A: 

Subversion

[This is a stub - please add Subversion info]

slim
A: 

Bitkeeper

[This is a stub - please add Bitkeeper info]

slim
A: 

RCS

RCS was pretty much superceded by CVS and later Subversion.

It relied on locking, which most people are glad to see the back of.

RCS could be compiled with strict locking or without it; it did not absolutely rely on locking versions.

For simple version control, RCS is a workable product. It has its deficiencies - in modern terms, the lack of changesets is one problem (changes are particular to a single file). But it was a solid VCS - as was SCCS in its day. And there are definitely people still using RCS - I do, for one. Granted, I'm looking to move to a DVCS; at the moment, though, RCS is my (private) VCS, and it works well for me.

slim
A: 

ClearCase

[This is a Stub - please add Clearcase facts here]

slim
Not a Rational fan. It seems that they specialize in creating gargantuan products that are primarily concerned with creating careers for Rational system administrators. Horror stories abound. Never again.
Dan
+3  A: 

Git

[This is a stub - please add git information]

slim
A: 

Hi, our setup for all kind of project sizes

  • Subversion on a Linux machine integrated with ADS
  • TortoiseSVN for Integration with Windows Explorer
  • VisualSVN for Integration with Visual Studio 2008

The main advantages from our point of view:

  • free (excluding VisualSVN)
  • stable
  • accessible via https
  • easy to use

Greetings Johannes

Johannes Hädrich
Other than the fact that we run Subversion on a Windows server, this is our setup too. Although VisualSVN isn't free.
Sean Gough
VisualSVN has a 30 day trial license, but certainly is not free.
Ian Suttle
+1  A: 

CVSNT 2.5.04 and WinCvs 2.1.1 plus several custom Python/Tk macros
Does everything we need and does it well.

Oliver Giesen
+3  A: 

I use perforce at work, which is really user-friendly, has a dead-simple GUI, supports branching and merging, does atomic commits of changelists as the basis submission mechanism, although there's revision-history available per file also.

For open-source work, I'm also using SVN (via TortoiseSVN on Windows) and git (which seems great, but I do miss a good GUI for this).

PatrickvL
Creating a new branch is quite painful in Perforce, but really easy in Subversion.The result is that Perfoce shops are usually bad ay creating task branches, test branches and such.
Roger Wernersson
Completely disagree with the branching comments. Perforce does branching very well indeed, and my (extensive) experience of many Perforce installations is that branching is a common and understood way of working.
Greg Whitfield
I have a lot of trouble describing Perforce as really user-friendly when the GUI has commands like "Open for Add". In particular, it is very difficult to see what files have been touched and quickly see diffs against the repository, compared to TortoiseSVN.
Andy Dent
"Open for Add" makes perfect sense when considering the rest of the terminology like "Open for Edit". Opening it has the connotation of adding it to a changelist, rather than doing the operation immediately.
Ryan Fox
Files that have been touched are very clearly distinguishable in the changelists, and diffs against the depo require one click.You also get the benefit of not having to use Explorer. ;)
Ryan Fox
+3  A: 

for voting? how is this supposed to help anyone? votes without qualitative information? I think the posts with a case plus advantages and disadvantages are much more usefull. voting doesn't provide statistically usefull or valid information in this context, quantitative analyses do! why? because cases (situations) are different and voting does not differentiate for that and is therefore substantially flawed. keep on posting your cases and your evaluations. that helps a lot!

tharkun
this was exactly my point, but seem like only few understand it...
Ilya
that could be because the distiction between quantitative and qualitative information and their respective advantages and disadvantages is not really an issue in the exact sciences. Folks without a social scientific background tend to overestimate the value of nominal data.
tharkun
I guess the fact that my wife is social worker help me here :)
Ilya
A: 

SVN with Tortoise beats anything on Windows when it comes to ease of use.

Leonid Shevtsov
I couldn't make head nor tail of Tortoise. For simple code->commit cycles, I use Eclipse's SVN plugin. For anything more complicated I use the SVN command line in Cygwin. It's very precise and clear what's going on, and of course you can work directly from the SVN manual.
slim
+2  A: 

Here's a balanced comparison between git and mercurial, that concludes that git is conceptually better (if only a little); I quote :

Although mercurial may still feel nicer today, the change feels inevitable

Please refrain from flaming wars on this, it's just one mans' opinion. Please add your own if you feel like this doesn't represent the whole picture yet.

PatrickvL
+1  A: 

AccuRev sounds like a little revolution in version-control too, I would really like to use it someday.

PatrickvL
A: 

I use CVS at work for legacy repositories and git for personal projects

neomorphic
+4  A: 

I recommended Vault from SourceGear

http://www.sourcegear.com/

The repository is stored on a sqlserver database. Great tool, free license for single user.

Niki
A: 

Mercurial (for voting)

Asgeir S. Nilsen
+7  A: 

Bazaar (for voting)

Asgeir S. Nilsen
You can get free hosting for bzr at Launchpad.
quikchange
TortoiseBzr is also pretty decent nowadays.
thomasrutter
+1  A: 

Server side:

Client side:

  • TortoiseSVN
  • If you use Zend 5.5, also install Collabnet subversion client so that you may use SVN from inside Zend. (because the built-in SVN client is not compatible with the Tortoise 1.5+ and Trtoise does not offer any svn.exe file)
Veynom
A: 

PVCS - It has a ncie web client and cool Java standalone client. It has almost the same speed as subversion, but uses the opposite source control methodology. Every developer has to lock the latest file revision of a certain branch when editing. This is more secure, compared to the subversion, which allows free editing a revision and then the system tries to merge and resolve conflicts.

m_pGladiator
-1 for using the words "PVCS" and "nice" in one sentence.
starblue
also "cool" and "Java". The 90s called and said they were sorry.
gbjbaanb
A: 

At work, we all use Visual Studio and some of us use Visual Source Safe 2005 and others Subversion Server on Windows. For my home projects, I use only TortoiseSVN with a file repository.

Im my experience, those who uses Source Safe just want to "backup" their code. In fact, they rarely add comments to their commits. That's why they prefer Source Safe for its better integration with Visual Studio: they have virtually nothing to do.

In teams where we use Subversion with TortoiseSVN, it's mandatory to comment on each commit. This way we can view the logs to know what was done and how.

Michel
+1  A: 

subversion + ankhSVN (version 2+, 1 was useless and buggy) + TortoiseSVN.

+1  A: 

Anything But SourceSafe, courtesy of some guy called Jeff Atwood

Gordon Hartley
A: 

Visual SourceSafe

Recommendations: Avoid. Visual SourceSafe (VSS) has a really difficult time keeping track of changes, especially when files get renamed. Also, VSS completely lacks the support of atomic check-ins. We continue to use it as it is extremely easy to check code into it, and there is a large amount of static friction keeping it in place.

ChronoPositron
What prevents you from moving to SVN? Or more modern, distributed systems which have plenty of migration scripts available?
niXar
+4  A: 

We use Subversion via Netbeans and Eclipse built-in support (IDE selection depends on developer's preference). We have Fogbugz matching the check-ins to the original cases and CruiseControl kicking off the integration build after every check-in.

One of the nice benefits of our setup is that the developer is pretty free to choose their development environment: Linux / Windows, Netbeans / Eclipse, etc.

Bob Cross
+2  A: 

Team Foundation Server

Advantages:
1. Integrates easily with Visual Studio
2. Free with MSDN license for small teams( 5 or less)

Disadvantages
1. Not free for large teams (2010 will be free for MSDN subscribers)
2. Centralized System

Guichard
Disadvantages: Forces you to install SharePoint and a bunch of SQL Reporting Services crap. I wish you could install it just for the source control.But it's the only system I've used and have never had a problem with it.
invenetix
You've never had a problem with it? Wow, our problems never seem to end.
Ian Suttle
A: 

SVN + Tortoise = win

A: 

Used several:

VSS - Too unreliable to use. Avoid.

CVS with WinCVS client - Horrible to setup and use. WinCVS is diabolical and buggy - it can merge code and throw away the stuff you've just written. Doesn't deal with file/directory renames or deletions well. Avoid.

StarTeam - Expensive and with a confusing client UI

ionForge - Free for one user. Easy to setup and use, only backing up its zillions of repository files was a bit of an issue

Subversion - Decent free system. TortoiseSVN is a poor client - the integration with Windows Explorer means you have no view of the repository (it is often confusing which one you're using at a given point, ditto with branches) or history without lots of menu clicking. Subclipse client for Eclipse is nice though.

A: 

Subversion (without Tortoise)

A: 

use both svn and git, i just started using git to manage multiple branches and merging them better then push the changes back to svn.

Brendon
A: 

On the Mac, I use Cornerstone as my preferred svn GUI. I admit I prefer the log view of Versions but Cornerstone does some nice things picking up changed files and especially providing a rapid filtered look through my repository - I find myself using it just to access files that I know are in a huge directory structure.

Having an auto-add of added files and the converse, an easy way to ignore, is very important on the Mac where bundles are used to provide what appears to the Finder as a monolithic file but is really just a folder with attributes. You end up with a lot of minor file additions rather than changes within files.

Andy Dent
+1  A: 

SCCS - The first one I used. It doesn't pretend to be anything but a source code control system and, with proper scripting, it can be used for versions, subversions and platforms.
It's harder to use than SourceSafe, but it's more secure.

Dave
A: 

MKS Integrity

[This is a stub - please add MKS info]

Bob
A: 

For projects that I'm running, I use SVN. For most of my projects, I'm using Visual Studio 2008, so the primary SVN client that I insist everyone use is Ahnk SVN. This seems rock solid and the integration with VS is pretty well done. It's important to have the version control system integrated into the IDE, because the most common SNAFU I run across in projects is people adding modules to the project but forgetting to add them to the repository (this is the equivalent of the check out and go home scenario from the dark ages of SourceSafe). With an integrated SVN client this doesn't happen.

I always install Tortoise in addition to Ahnk, since not all project related assets wind up in a VS solution. In my opinion Tortoise is an extremely well done implementation, and I like the shell extension UI, but it can't make up for the benefits of VS integration, so I use it as a backup.

SVN rocks because:

  1. It's easy to use.
  2. There are plenty of solid open source clients available, which means you can always get your team members to install it.
  3. There are good afordable hosted repository providers available.
  4. It handles binary files much better than CVS
Paul Keister
A: 

Mercurial + Mercurial Queues + hgsvn + hg-git

  • Use Mercurial to work with SVN and Git repositories
techtonik
A: 

Visual Source Safe

Advantages:


Disadvantages:

  • Gives you the illusion of safety and control, while exposing your project to risk. (via Jeff Atwood)
  • Teaches developers bad habits: avoid branching, exclusive locks, easy permanent deletions. (via Jeff Atwood)
  • Viewing and retrieving historical versions is extremely slow (via Alan De Smet)
  • Can easily corrupt your data (via Michael Bolton)
Jweede