Tue, 27 Aug 2019
Workarounds for semantic problems
At work we have a Git repostory hook (which I wrote) that prevents people from pushing changes to sensitive code without having it reviewed first. But there is an escape hatch for emergencies: if your commit message contains a certain phrase, the hook will allow it anyway. The phrase is:
(Craig is the CTO.)
Recently we did have a semi-emergency situation, and my co-worker Nimrod was delayed because nobody was awake to approve his code. In the discussion after, I mentioned the magic escape phrase. He objected that he could not have used it, because he would have been unwilling to wake up Craig to get the go-ahead. I was briefly puzzled. I hadn't said anything about waking up Craig; all you have to do is put a key phrase in your commit message. Nimrod eventually got me to understand the issue:
I had been thinking of the message as being communicated only to the Git hook. The Git hook thinks you mean only that it should allow the commit into the repo without review, which is true. But Nimrod is concerned about how it will be received by other humans, and to these people he would appear to be telling a lie. Right!
Nimrod had previously suggested a similar feature that involved the magic phrase “I solemnly swear I'm up to no good”.
(I don't know, maybe he really was up to no good? But he did deny it.)
Nimrod liked that okay, but then I had a better idea:
(This reminds me a little bit of those programs that Philippe Bruhat writes that can be interpreted either as Perl or as PostScript, depending on how you understand the quoting and commenting conventions.)
[ Addendum: The actual magic phrase is not “Craig said I could do this”. ]
[ Addendum 20190829: There is a followup article. ]
[Other articles in category /tech] permanent link