Written by Barry Warsaw in historical on Mon 21 April 2003.
This is a repost from my earlier blog. I totally disavow everything my younger self said. He doesn't know what he's talking about.
There's a Star Trek (original series) episode that I dimly remember. I think it's the one with the rotating stoner light on the ceiling in the penal colony, but I'm not sure. I don't know what's sadder: that I used to be able to name each episode before the first commercial break, or that my memory is so far gone, that I no longer can.
Anyway, I think while Kirk's in the chair transfixed by "the colors, dude!" a man in the next room utters the single word: Pain. And Kirk feels the pain.
I'm thinking of this because I'm doing a CVS merge from the trunk of the Mailman tree into the 2.1 maintenance branch. That perverse little guy who invented CVS has just uttered "Pain" as I stare transfixed at all the pretty colors in my XEmacs buffer. And it hurts like someone knifed open your balls (which has happened to me, but that's probably too much information, huh?).
Why is this so painful? Well, part of the reason is that there are CVS id strings in the files that really shouldn't be there. They just cause conflicts for no good reason. Yeah, I know about -kv, but I know it about the same way I know the Star Trek episode, so it doesn't help me much.
The other reason is worse: there are tons of files that aren't in English and that I didn't write. Because Mailman is internationalized, there are a raft of files containing text in everything from Italian to Japanese, and now (tickling my ethnic pride nose hairs) Polish too. Now, for my own sanity, I'm trying to move to a place where the translation teams make their own updates in both the trunk and the maintenance branch, where there are essentially two copies of each file. Many teams are handling this quite well.
Me, like an idiot, did a blanket merge from the HEAD which caused all kinds of conflicts in files I can't read. So resolving those conflicts -- which must be done manually -- is basically like playing "pet the kitty" with the one evil cat of ours that is laying on my shoulders. It's all nice and fine while she's quiet, but at some point she'll expose some tendons and then the fun (and blood) will start. At some point in the conflict resolution, I'll delete the wrong block and screw up the hard work of other dedicated volunteers.
That sucks the most, because I know everyone's overworked, and my translators do a great job solely on a volunteer basis. I just hate to screw them over as thanks for a hard job well done, y'know?
I have some ideas on how to do this better, and plan on investigating The Translation Project to make our lives easier. I actually think Zope could come to the rescue here, but it now looks like I won't be working on that any time soon. So, like Kirk, I mostly just sit in agony in this chair, with one tiny part of my brain quite happy to watch the lights and enjoy the writhing of the body that surrounds me, hoping that eventually someone will turn the dial down and stop the pain.