views:

551

answers:

11

I am responsible for a small development team and we deal mainly with database development. We are currently using MS Visual Source Safe as our source control system, but it has its limitations and we are seriously thinking about changing. What system would you choose?

+1  A: 

Subversion, look for Visual SVN , it free and real easy to use.

You might also take a look at SQL Server database versioning with Subversion (SVN)

Kasper
+11  A: 

For a small team, SVN is best, in my experience (I've used CVS, SVN, and VSS in the past).

It's powerful, has a large userbase, and good tools like web interfaces, etc.

Some folks will probably recommend git, but I think it's overkill for what you describe.

SquareCog
One of the nice things about Git is it has very few dependencies (just libz, I think). This makes it easy to build and deploy on almost any system. Having said that, I would recommend SVN as well because the OP is already working in a Windows world. +1
Greg Hewgill
Thanks Greg. I didn't mean overkill in terms of requirements, but learning curve, since it's pretty drastically different from the non-distributed source control approach (I think -- so far all I know about it is the buzz. One day I'll learn.)
SquareCog
One more advantage, SVN is opensource.
Guido
It's been a year since I posted this answer.. Update: I much prefer Mercurial now, even for small teams (currently, I am using it for 3 people). Ability to easily merge/branch, perform local commits for rollback without affecting others, and friendly svn-like commands (unlike git, which I've now also used). Plus it easily syncs with SVN and Git if you are working in parallel with a larger project.
SquareCog
+5  A: 

Our team uses Sourcegear's Vault, which is a lot like CVS or VSS, just without some of the wrinkles.

Quantenmechaniker
+3  A: 

Our team (.NET) a few months ago switched to Subversion / TortoiseSVN, VisualSVN (for VisualStudio integration) and Trac. I can't recommend these tools enough.

gregmac
+2  A: 

I'd stay away from the centralized ones, distributed version control systems give much more flexibility, while still allowing centralized way of working.

For more technical people git could be good, it has been developed by Linux kernel people after all.

Bazaar or mercurial are probably better for those looking for ease of use.

iny
This article suggests that Git is alot simpler to use than you might at first believe: http://articles.sitepoint.com/article/version-control-git
rohancragg
+1 For suggesting a modern, free, distributed VCS.
Johnsyweb
+4  A: 

Look into using SVN, from personal experience I would stay far far away from ClearCase.

At my company we recently started using source control to track database changes in schema and stored procs. It has helped tremendously that we have it all under SVN to track the changes. Its a shame though that the previous 4 years worth of work has been lost because before now nothing about the DB was under any sort of revision control.

bwknight877
Can I ask how you now get the changes from your database to SVN?
David Atkinson
Its been so long I dont remember how we did it, but this looks like a promising and familiar tool http://www.poweradmin.com/sourcecode/vssmigrate.aspx
bwknight877
I meant how are you storing your database changes in source control? As product manager for Red Gate's SQL Source Control (http://www.red-gate.com/products/SQL_Source_Control/index.htm) I'm particularly interested in how development teams are managing this process.
David Atkinson
+1  A: 

Perforce.

Commercial software, and it's not free like SVN, but it's great. Crossplatform, easy to use, GUIs, command lines, etc.

XPav
If you can afford the licences it's a powerful system with decent customer support and continuous development. It's pretty capable at doing merges and from what I hear is something that's quite painful with Subversion/SVN. I'd advise pairing it with a good diff/merge tool - it allows you to hook any 3rd party tools in with it.
rohancragg
A: 

Not free, but a very nice (!) system is "PlasticSCM": http://www.plasticscm.com/demos/plastic28/index.html

Works with branches, which works very good for parallel development ("branch per task pattern"). For every task (ticket, bug, issue, whatever) you make a child branch. Plastic will update your "workspace" on disk, so all files have the right version. You can make as much changes and checkins as you want, because you work in your own branch, so nobody else get troubles if you checkin something that does not compile! This works LOVELY!

If you switch to another branch (because you must make a quick bugfix), all changes are "shelved" on the server, current workspace is automatically updated to that other branch, you can make some changes + checkin, switch back to your branch you were working on, and all files are unshelved again, so you can continue where you were before. Very very nice.

It has a very cool GUI client, works also on MacOS + Linux.

André
A: 

I believe that SVN + SQL Examiner Suite is best solution for keeping your database under version control.

SQLDev
A: 

TFS 2010 - you should have the right to use it for 5 people, otherwise ther are various cheap offers for companies.

Set it up on a decent computer with virtualization - one vm TFS, one SQL, one (possibly) build (only).

  • Source control with SQL Server behing.

  • Integrated work item tracking

  • Can integrate continuous integration with testing etc.

  • Can integrate sharepoint for documents.

Easy to set up in the 2010 version ;)

TomTom
+1  A: 

Specifically for a database development and just in case you are using MS SQL, I would recommend you to take a look at Red Gate's SQL Source Control product, which can work over SVN and helps to source control databases.

Regent