views:

73

answers:

4

Hi All,

In my company, presently we are using Rational clearcase as the Software Configuration Management tool for our Embedded software development. The software is basically for Automobiles, to be specific for Engines (I dont think these information really matters). But I find Clearcase to be very slow is performing any the activities (accesing files, branching and labelling), in addition to which there are various other limitations.

We have recently decided to research on some free & open source, distributed version control system which could be able to handle our large projects with speed and efficiency. This tool should be a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server. Branching and merging are fast and easy to do. It should have multisite development facility.

With these above mentioned requirement, we have come up with some of the tools that are presently available in the market:

GIT, Mercurial, Bazaar, Subversion, CVS, Perforce, and Visual SourceSafe.

I need everybody's help in finding me an approrpiate SCM tool for me which meets the above mentioned requirements.

Thanking you in Advance, Rahamath.

+3  A: 

Mercurial or Git are the most popular Distributed Version Control Systems. I believe Git has the speed advantage, particularly in committing, branching and merging. Furthermore, its merging algorithm is the best I've yet come across; most merges can be handled automatically without user input.

From my own experience, I would recommend Git without hesitation were it not for its very steep learning curve. However, I believe much of this is due to the paradigm shift when switching to a DVCS, such as getting the hang of pushing and pulling, the way repositories become decentralised.

Subversion, CVS, Perforce and SourceSafe are not distributed; furthermore, Perforce and SourceSafe are neither free nor open source. CVS is all but obsolete, with Subversion being its natural successor, so I wouldn't consider it any further.

alastairs
+2  A: 

If you want something "not dependent on network access or a central server", then the centralised SCMs from your list (Subversion, CVS, p4) have to go.

If you want cross platform, then I think Visual Source Safe would have to go.

Also, you mentioned Open Source, that kicks out p4 and Visual Source Safe.

CVS is quite old and if you're planning to use that, you'd best ignore it and use SVN instead.

Git is something that you can add to the list but it's support on windows is not as good as that of bzr and mercurial.

I use git myself but I develop exclusively on Gnu/Linux and so can't comment on windows support. Also, it's a bit quirky but once you get used to it can be really powerful. There is a learning curve problem so you might have to spend some time training your team on the tool.

Bzr, I don't know. When I last touched it, it had repository format issues and was horribly slow. It's much better now but I was scarred by my first exposure.

Hg is sweet and works fine on windows and Gnu/Linux but since I've used git quite heavily, I miss some of it's features on hg.

Noufal Ibrahim
Git's Windows support does lag behind Mercurial's, but I've found it quite usable once the learning curve is overcome. There are tools like TortoiseGit to help with that, too (although it does push the user towards a subtly more SVN-style workflow). Git is my personal VCS of choice these days.
alastairs
Mine too. I don't work on windows at all though and when I tried `msysgit`, it was kind of slow and didn't really fit in. But then again, I don't fit in with windows so I can't really judge. Git does have a UNIX heritage with it's whole plumbing/porcelain style architecture.
Noufal Ibrahim
+1  A: 

At work we are actually on ClearCase too and not satisfied for the some reasons... Very slow to update big projects (particularly if not local network)...

We (not me) benchmarked some products and Mercurial was choosen to be the future solution used.

Sebastien Lorber
+1  A: 

We are using ClearCase (with its advantages and pain points), and we are considering DVCS.

Right now, we are introducing Git, both on Windows (msysgit) and on a "central" Solaris server, which does met our needs in term of merging, and in term of distribution (for offshore-development)

But we have to setup "central" repositories for the developers to use as reference, and for that we had to use gitolite (the pu branch) for its fine-grained access level (repo, branch, directory access per user or per group, ldap-based)

The integration with Eclipse is in progress, and we are confident on the support level since all Eclipse projects have switched from CVS to Git (so they are committed to support it).

Mercurial has been considered and can certainly offer the same level of features, but has a much complex branching model.
Git has no extension to install. It just works (with a learning curve we manage to keep at a reasonable level through my user support services)

VonC