views:

79

answers:

5

Hello,

We are a company, working on small and some huge project. Sometimes on one project are more developers 5, 10, 20 etc.

We are searching for an effective revision control system with best optional properties:

Performance issues – one file size, complex directory structure

Scalability – support for 5, 10, 25 developers, 10, 50, 200 projects

Merging of branches

Revisioning and marking of code changes

Statistics and report for developers, leaders, vendors, leader development, customer etc.

Supporting the development of various technologies- .NET, JAVA, PHP, Oracle, Delhpi, ABAP / SAP.

At this moment we are deciding between SVN, VSS, Rational rose, ClearCase and JIRA. Does some of this solutions support bug tracing and knowledge base repository?

Maybe someone has experiences on this topic and could give proposals.

Thanks in advance.

Best regards.

A: 

The list above contains mostly old-school revision control. I would avoid VSS at all costs as it locks files exlusivly - only one user can change or even check-out a file at a time.

If you still want single localized repository I would recommend SVN. it's easy to use and has good Visual Studio interation via 3rd party tools.

If you need a fully integrated solution for Microsoft technology (bug tracking, source control, continuous integration etc.) I recommend using TFS.

Check out mercurial/GIT for a distrubutes source control if you plan on a lot of branching/merging.

Dror Helper
+1  A: 

We have very good experience with SVN. It has good control on the codebase, and it is easy to see what has happened on the files.
It also has good Visual Studio interation via 3rd party plugins. We use VisualSVN, which is not free but is very good.

VSS is not good. It is very easy to mess up things.

ClearCase is quite good, but licenses are very expensive. It has generally very strict control on the code base, but should something go wrong it is very difficult to fix it.

awe
What do you mean by this "something go wrong"?
ledcomp
Checkouts on your computer is closely controlled by the ClearCase server. If you have a computer crash, there is a problem with checkouts because if a file is locked, you cannot unlock it because the instance that did the lock (the crashed computer) does no longer exist. This causes some ghost-checkouts that must be cleaned up by the administrator using some high level administrator tools. In SVN, its just to do a clean checkout on your new installation, and you are good to go. The server does not care about your checkouts, because all states are stored on the local client, not on the server.
awe
This is of course a two-way issue - ClearCase have strict control, which is good if you need to have strict locking control on what the files. SVN supports a more loose control here, which just lets you edit files without considering if someone else edit it at the same time. Conflicts are handled through a conflict merging functionality when you commit. In ClearCase, you normally lock the file before you work with it, and if someone else needs to work with it, they need to check it out "un-reserved" and commit/merge after the first one has committed.
awe
Locking is also available in SVN, but there it is not the recommended way of doing it. In ClearCase, locking is the preferred way.
awe
A: 

Whatever it takes, dont use VSS. Never.

As far as I know, Jira is is not a version control system, but a bug / issue tracking system (and a very good one).

As said in other answers, SVN is a very good solution, used by a lot of projects with success. Newer distributed solutions include Git, Mercurial (Hg), Bzr, ... but I would not use a distributed version control system in a non distributed team. There is a real initial cost to undertand DVCS.

And did I already said : dont use VSS, under no circonstance.

Guillaume
It's possible to use Jira + atlassian (VS plugin) for version control.
ledcomp
Yes, you can integrate Jira with Visual Studio, but this is still bug / issue tracking and not version control ...
Guillaume
+2  A: 

I have worked on SVN, VSS and clearcase in various companies which I have worked with. I have always felt SVN is the best among these. However there are some better distributed version control tools(like mercurial, git, bazaar) available in the these days which you might want to consider too.

Here are my views primaryly on SVN/clearcase:

Performance issues SVN: I have seen that subversion can handle things up to a single file size of 2GB. Complex directory structure does not matter for subversion as it is Clearcase: I have seen performance/network problems in clearcase in handling huge files/repositories. In my case it was a NFS mount in my windows system and it had made things terribly slow while perfoming builds.

Scalability Both SVN & clearase have good scalability options. However svn has pretty good community and support over the internet which lacks for clearcase. However in case of clearcase you will have a paid support and quick resolution for any scalability problems.

Merging of branches Clearcase is a clear winner in this case. Clearcase for a while has a pretty good merge capablities. SVN is still improving on this front, but there has been a major contribution to the svn merge feature in the recent past.

Revisioning and marking of code changes IMO, its pretty much the same between clearase and svn. But the conventions are a little different.

Statistics and report clearcase has good reporting capabilities, better than svn. However I have felt clearcase is a over killer in this case. SVN has a lot of simple reporting tools(like glassfish) which are capable of providing neat reports.

Supporting the development of various technologies I have worked on most of the technologies above but I believe both the tools have decent support for all possible environment( like Visual Studio, eclipse, etc)

BTW, rational rose is a UML tool, not related to versioning. JIRA is a bug tracking tool, it integrates well with SVN. I would recommend you look at trac for integrating with svn.

Hope the above helps

Version Control Buddy
A: 
  • Clearcase is good only if you know how to use it, and it is very expensive
  • TFS doesn't perform well. It's slow as hell.
  • SVN doesn't do good branching. As a side note, all major OSS projects abandoned it already towards Git or Mercurial
  • Avoid VSS as hell
  • I'd definitely go for Jira + Plastic SCM
  • Hg and Git are EXCELLENT options but you need to be a command lover most of the times
pablo