Thursday, November 6, 2014

Day 39: What's the decision?!?

We have been debating for a while now. The team is moving toward a continuous release model, and as a part of that, we want to move away from using subversion for our version control. 

This is a pretty good explanation of what subversion is and why it's used.

Essentially, we have an entire team of people all trying to work on the same documents. That can get tricky. We use a version control system to track the changes each individual developer is making and help merge those changes back into the large collection of files (the repository) that comprise our product. You can think of this as a tree. The main trunk is our most stable version of the product. When we want to create something new, we create a branch off of the trunk. It has all the same parts, but we can make modifications without effecting the main trunk. Then, once we are confident in the changes we have made, we can rejoin the code in the branch with the main code in the trunk. The trunk gets a little bigger, as trees do as they grow, and we move on up the tree, taller and taller, making more branches as we need.

That's a pretty simple view of it. We have been using a product called subversion to help us make all of these changes. The main theme of branching is that at some point you have to merge the files back in. You need a system that can compare the state of the files now, the state of the files when you created the branch, and the state of all the other changes that have been made since you created the branch, then decide how to put all the pieces back together. Surprisingly, subversion isn't very good at that part. 

So we went looking for something different.

Git and Mercurial are two very popular competitors of subversion. We have team members who have worked previously with both, so there were very strong arguments and very loud voices for both. 

We spent several weeks developing our acceptance criteria to detail all the smart, non-emotional choices we should make to choose between the two. The comparisons were made and we have made a choice! The team will be switching to Mercurial!! (A pleasantly graphical for being so technical description of Mercurial)

No comments :

Post a Comment