Week 1

Day 4 - "A decision is reached"

Analysing Your Requirements

The most important aspect of choosing a version control system is to define your requirements. These can be few, or they can be quite specific. Let's see what John and his team decide are the most important aspects for them and ultimately what VCS they decide upon.
In the trenches...
"Offline committing seems like it's a pretty useful thing to have." Mike said nodding. "Especially with people like John travelling all the time."

"I have to admit, it would be nice to be on the plane, and be able to pull all the code together, knowing all of the history of each section," replied John. "The branching in Git seems to be quite powerful as well."

"I must admit," chimed in Klaus, "I've used branching a bit in Subversion before and it was a lifesaver. It's supposed to be super fast in Git too."

"And owing to the fact that Git seems to support several workflows, it means we can try them out and see how they work for us." Markus looked at the team. "Are we settled on Git then?"

The team nodded and everyone walked out of the board room except John. Things were about to get interesting for him. Very interesting.

Since this book is all about Git, we won't delve too far into the workings or features of other version control systems. Hopefully, this chapter has given you enough information to go and check out some of the other systems if you feel the need to. The main thing to bear in mind is that Git is a Distributed Version Control System or DVCS. While this is so, it is equally important to remember that it can be used in the same workflow models as centralised version control systems.

John and his teams requirements are nothing special. They are a smallish team looking to reap the benefits of having their code in a well organised system. They are also looking to reorder their team functions and dynamics in order to fit around the version control system and really make it core to their development.

Version control is not a replacement for workflow. It is not intended to make everything better. If you have people going off and doing their own thing and being careless about the way they work, version control is not going to suddenly fix everything. A tool is just that, a tool and version control is no different. You can buy the messiest builder in the trade a nice shiny new tool box, but unless they have the mindset to want to change, you'll probably find that all the tools end up in the largest compartment at the bottom.

Previous Day

Next Day

 
   
home | download | read now | source | feedback | legal stuff