views:

431

answers:

19

We are just beginning the process of looking for a source code control system. I realize we are behind, but better late than never. None of the members on our team have experience with any systems in their past so I was hoping I could find out some basic things to look for as we begin investigating different tools. Here is a little background on our team:

  • Our group consists of developers and designers
  • We work primarily on PC's with one or two on Mac's
  • Many are not comfortable with command line based systems
  • The majority of our development is for the web
  • We develop in ASP.NET, ColdFusion, and PHP

A few we plan on looking into:

Any experiences with any of these would be helpful to hear about.

+11  A: 

Do not use Source Safe! It's not only bad for source control it's just bad for the world.

I use Subversion with Tortoise. I love it. Rather easy to get up and running. Branching/Merging can still be a nightmare though.

Visual SVN is good too.

Jack Marchetti
+1 for your reputation grab at stating the obvious. (not to use source safe)
Earlz
But it's true, Source Safe is brutal
Jack Marchetti
It can't be said enough. SourceSafe is brutal.
Tim
I don't even understand why it's on someone's list !!
deubeulyou
I have a friend who after college worked in the support department for Source Safe at Microsoft. He spent half his life helping people to rebuild their repositorys after it screwed them up. If I even mention "Source Safe" he gets a weird nervous twitch.
Steve Sheldon
+1  A: 

Subversion as a server, and tortoise svn as a client, could fit very well for your requirements, althought I hear that GIT is newer and has a lot of improvement.

Aito
+4  A: 

If you havent had a single sourcecontrolsystem so far, I rather doubt you can see the improvements of GIT etc.

Start simple and with a lot of support: use Subversion as Server and Tortoise as Client.

Its a easy setup and easy to use.

MADMap
+2  A: 

Subversion is especially suitable for web development because of the 'differencing' algorithm it uses for binary files. Web development isn't just about code. Binary resources come into play a lot (images, PDFs, etc).

Subversion tracks the differences between files and records those. Contrast that with CVS, which essentially stores another copy of the binary file, and the benefit becomes apparent as your binary resources and check-ins increase.

I use the TortoiseSVN plug-in, which is decent enough for me. As you specifically tag asp .net, you might want to look into VisualSVN, which does a great job in mitigating the biggest problem in version control - a colleague forgetting to add a file to the repository.

I also used Visual Sourcesafe back in the day. Don't know if it's still the same now, but its exclusive checkout per user was a complete nightmare in a team of multiple devs. Constantly had to remind people to check stuff back in or, alternatively, convince a friendly admin to log me in under their credentials whenever someone was out of office.

Paul Alan Taylor
+1 - good recommendations. The only caveat that I would add is that I purchased VisualSVN but didn't use it after awhile. It was just more natural for me to work with the TortoiseSVN interface directly rather than going through VisualSVN in VS. Your mileage may vary.
Mark Brittingham
Additionally, if you use ColdFusion Builder or any other Eclipse-based editor, there are very nice SVN client plugins for them.
Ben Doom
TortoiseSVN is what I use, and I don't have anything bad to say about it. But that might just be my sunny disposition in general.
Sheep Slapper
A: 

First advice: Don't use SourceSafe. It's a nightmare. I think even Microsoft developers don't use it internally!

You could go with SVN using TortoiseSVN as a front-end for the people not comfortable with the command line. But you will have to host your own Subversion server or to find an hosting provider for your repositories.

Also, there is SVN plugins for the most used IDE out there.

esavard
+1  A: 

I'd second using Tortoise SVN, avoiding SourceSafe and add another to the list:

Perforce - This what was used at one of my former workplaces. It wasn't bad though the merges were painful to do in that it took 1-2 developers a day to get the code merged to move from one environment to other,e.g. dev->test, test->staging.

Tortoise SVN has a lot of built-in windows explorer options that can be used instead of the command line so I rarely use the command line with Subversion.

If you do go with SourceSafe do beware that there is an admin tool to analyze the DB to see that should be run periodically and can be a little annoying as I don't think anyone is supposed to be using SS when the analyser is running. The branching in VSS is kind of weak, especially in contrast to seeing how well things work in SVN.

Another point is to consider if you have a bug-tracking system and want to have an integration between the two.

JB King
Probably not useful info in this scenario but if you happen to have large projects and you need to use Visual Studio, perforce is cumbersome, it slows project loading and the whole concept of managing bindings seems a waste of time. Just a heads up, not a bad idea, solid system, just limited in my experience in certain situations.
Steve Sheldon
+3  A: 

You may want to take a look at Perforce. http://www.perforce.com/perforce/products.html

jocull
A: 

Another +1 to Subversion. Have used with a variety of languages, including ColdFusion. Tortoise is great for windows, the best graphical clients for Mac are not free, however.

Would also recommend against Rational Clearcase. Their client is kludgy and there aren't near as many plugins for different ide/platforms.

derivation
+1  A: 

i personally use git with cygwin. i prefer it over svn because of the pain that svn has caused me in the past with merges. git was designed with making merges painless and it does a very effective job at adhering to that.

if cygwin isn't your cup of tea and you need to have windows explorer integration, please check out the ToroiseGit project. It has the look and feel of ToroiseSVN so it's easy to pickup. you can even run ToroitseGit and TortoiseSVN side by side if you desire.

also TortoiseGit has built in support for SVN repos so you can check out an svn repo and get all the benefits of local branches and what have you.

rip747
A: 

I'm currently working with Rational ClearCase and I cannot complain (at least, 'till now).

Before that we used ChangeMan Dimensions, that's a regular CVS tool with many resources but in my opinion, it makes source control become very burocratic, to say the least: it features the infamous exclusive checkout. I also don't like the design.

ClearCase has a Windows-Explorer look and once you get used to it, it becomes very simple to use. It also has a nice and easy integration with MS Visual Studio.

born to hula
+1  A: 

You should go with subversion, or maybe git or mercurial.

It's clearly not worth it for you to buy anything, I think you can remove commercial solutions from your list right away.

Also, you should probably get some 3rd party hosting instead of running your own server.

deubeulyou
A: 

SourceGear Vault is a great tool. Its interface is similar to VSS, but it doesn't have all the problems.

GreenieMeanie
A: 

If you use .net and visual studio or are in a heavily MS environment you may really like TFS. It has very good integration with Visual Studio. It also has lots of other functions like tracking tasks, bugs, etc. and automating builds. It is expensive, especially in the world of SCMs where you can get a lot for free (svn, git). Since you mentioned .net though it may be worth a look.

Nick
A: 

You need to make a decision as to whether you want to pay for it or have one for free. I know SVN and CVS are free and there are great UI clients and IDE plugins also available for free.

We started off with CVS and then transitioned to SVN a few years ago. The advantages we had were that a. SVN repo was smaller, b. It was accessible over the net through both http and https, c. Had great client UI tools (i use SmartSVN), there are also great plugins for eclipse and intelliJ. d. transitioning from using CVS to SVN was very easy as a user.

Kailash
+2  A: 

I work at a client where they use TortoiseSVN as the client and installed VisualSVN (Subversion) as the server component. At one point we had this master plan to use nANT and CruiseControl to keep 3 different environments for a .NET website in sync, but we haven't gotten approval on that yet (shock). So until then, we use our Subversion server to hold all the source code and keep the different environments in sync manually. Its not the best scenario in the world but it gives everyone access to the code and our development group is small enough that its easy enough for everyone to know what is being worked on.

cwaugh
+1  A: 

It true that VSS should not be considered - it is a dead product and just plain bad. However, Team Foundation Server - especially 2010 should be given a look. It not only does source code control but it has a work item tracking system, CI and build server and has some really great tools for testing. For example, it will run automated scripts and record the session in an mpeg movie so that you can actually see what the screen looked like when/if the test failed.

If that's more than what you want, go with SVN.

Loki Stormbringer
A: 

I've used QVCS by link text they have fair and much cheaper prices, for different versions.

I've used and tried subversion, and I personally do not like it, but if people like it and use, that's awesome for them.

I say you should find one that has the features you need, and price range that is reasonable, and has a good support system..

The hard part is getting everyone on your team to use it, and use it wisely...

crosenblum
A: 

I recommend you try Dynamsoft SourceAnywhere. It provides a Java GUI Client which you can use on Mac. Both standalone and hosted editions are available.

Catherine
A: 

Personally, I really like Subversion and the tortoiseSvn client as many have already noted. One site I found that I really like is http://www.springloops.com. They offer cheap SVN hosting, but they also integrate with BaseCamp which I love for managing projects. If you like Basecamp and also use Svn, its worth a look

Steve Sheldon