Monday, March 18, 2013

A letter to my version control software

OK, Mercurial, I feel the time as come for THE TALK. 

The talk about where I see my career going (grand slam of Nobel Prizes) and you see it going (down the tubes).  

Since I understand the best way to find common ground is by focussing on positive features of the other party, I will start by saying I do understand why you are widely used. Through your abilities, many people can work on the same computer code. They can make their own changes, share them with a community of code developers around the globe and in turn, implement other people's adjustments seamlessly into their version. In fact, for a large project --such as the two my research depends on-- I would go as far to say you are the essential component that prevents every one of us working on discrete, subtly different code sources.

Code version "elizabeth-170313-v5-old" never had that great a ring to it.

When I use you for the simplest of situations, we have no problems. 

Do you have anything nice to say about me, Mercurial?
Maybe that I'm persistent? Pointlessly so.
Maybe that I scream well when I fail? And that makes you laugh. 

Because this isn't the whole story, is it? When things get a little more complicated, you and I seem to break apart. We are like the estranged siblings who can manage to nod politely at one another during family gatherings so long as no one mentions the incident with the pancakes in 1982. Let's take a look at a recent example together, shall we?

I was adding a small new routine to the code. A fresh bit of programming that sat in its own file and never did anything to upset anyone. It was an innocent, Mercurial, you didn't have to treat it so badly. Initially you pretended to accept it, adding it to your register like Snow White's stepmother counted the princess within her family. Then I tried to merge with the main online code version and your cruel intent showed.

You refused to perform the action; your excuses involved branches, conflicts and heads. May I just say now that telling a lady she gave you 'multiple heads' is just not acceptable manners? Not to mention quite outside topic. You couldn't resolve, you couldn't update and the only option left to me was to 'force' my changes through which you proposed in a manner than suggested I'd regret it quicker than Voldemort after the birth of Harry Potter. 

I couldn't help but feel you weren't really trying. 

And I have to ask why. I wanted to love you. I felt we could work well together in the same way Lisa Simpson wanted to adore her substitute teacher. Yet, Lisa was despised by her teacher because she was thought too pretty. Is that your problem, Mercurial? Are you jealous because your execution command 'hg' reminds everyone your name is akin to a poisonous grey liquid metal? Or perhaps you just enjoyed the fact I gestured so rudely at my computer during these troubles that I was forced to leave the coffee shop in short order afterwards?

I liked that coffee shop and I may never be able to return.

I know other people do not have the same troubles with you and I feel bullied, tormented and terrorised by a piece of inanimate software.


It's not good. You make me feel like the Penny of my research family. And I don't even like cheesecake. 



DISCLAIMER: The problems the author has alluded to in this post reflect more on the difficulties with version controlling a large project than the Mercurial software. This is possibly supported by the Mercurial site which claims you can "Work easier. Work faster" but doesn't specify with respect to what. 

No comments:

Post a Comment