Sunday, June 17, 2007

Subversion Merge Tracking

I have been pimping Subversion now to every company I have worked with over the last 5 years. I believe with the upcoming Subversion 1.5 release has really moved Subversion over the top as far as version-control tools go. Here is why....

1.) Subversion is still free.
2.) The new release 1.5 addresses one of the most common criticisms of subversion. This is the lack of any embedded merge tracking.
3.) Subversion is still free.

Let me address #2 a bit. Subversion has always been a powerful tool, but in many ways the tool worked best in a single trunk or structured environments with controlled integration from multiple branches. The problem with that is that there are many development groups that are not structured, and do not have nice integration paths from multiple branches.

Many times groups over 10+ developers teeter on being chaotic, and the threat of chaos to the process was fine up to a point. I believe many larger development groups can go past that point in Subversion when complex branch and merge tasks are attempted on a daily basis. Groups often give up on spending the time on a good branching strategy (Bad Idea #1) and move to commiting to the trunk only. I think this is a huge mistake, and something a little update in subversion could probably fix.

The Subversion 1.5 release attempts to address the large development groups' integration issues, and I believe will help Subversion compete at the larger companies against the Clearcases and other high cost tools.

Here's the list of new features added to 1.5...
  • Handle Repeated Merges
  • Cherry Picking
  • Record Manual Merges
  • Rollback Merges
  • Block/Unblock Change Sets
  • Automated Merge
I believe that adding these features to the existing features (simple clients, atomic commits, hands-off server maintenance, open source, etc. etc.) makes Subversion a great tool for almost any environment.

BTW, If anyone needs help convincing their company to adopt Subversion, feel free to email me. I could write a book on what to say and what not to say :)

No comments: