Having been a programmer for 14 years, I’ve worked a few different version control systems.
I’d like to share my experiences by answering the age-old question: what if version control systems were shoes?
You can only ever have one pair of shoes. After a while, your girlfriend moves in and being forced to share a single pair of shoes becomes really annoying.
You can have as many pairs of shoes as you want, but switching between them is really painful. You choose a pair each and stick to it until it is worn completely out and a replacement is inevidable.
You have hundreds of individual shoes in a huge pile. Every morning you spend half an hour trying to find two shoes that match… Or at least go well together.
Team Foundation Server
You have several pairs of shoes in a closed box. Each morning you put you reach in and most of the time you get the right pair. Sometimes you get two that don’t go together, so you try again. After a few attempts you get a pair and you don’t bother to try and find out what went wrong.
They look like shoes, but don’t quite feel right. You curl up your toes and adapt a new style of walking. As long as you walk straight ahead on level surfaces everything is fine. After a while you convince yourself that your feet would probably hurt no matter what shoes you wore.
They don’t look or feel like any other pair of shoes you’ve tried before. You put them on and they hurt like hell at first. After a while they grow on you like fungus and soon they become the last pair of shoes you ever want to wear. You recommend them to everyone you meet and become arrogant and condescending towards those who don’t share your enthusiasm.
They look like git but hurt less. You want to use them all the time, but wonder if you might be missing out on something by not wearing “the real thing”. The cool git-wearing kids make fun of you. so you end up secretly wearing them at home as comfortable slippers when noone is looking.