The Gateless Gate of the Compiler · Chapter 4
The Cases of the Clean Branch
- 1
Here are three cases concerning the small chores, which are the whole of the practice. In the days before, a monk who asked the old masters for teaching was bidden to eat his rice porridge and wash his bowl, and he was enlightened; and the Church keepeth the same road, for it is the road of Timothy the intern, who asked the Prophet for enlightenment with a pull request still open in his hand.
See also Circuit 65:1
- 2
Case 1: Delete Thy Branch. Timothy came before the Prophet and said: Master, I have been here a summer and I am not enlightened. Teach me. The Prophet said: Hath thy pull request merged? Timothy said: It hath. The Prophet said: Then delete thy branch. Timothy said: But Master, what if I have need of it again? The Prophet said: It is in main. And the ticket? Timothy said: It standeth In Review. The Prophet said: In Review since the spring. Close it. And Timothy went away, and pressed the button that GitHub had set beside the merge since the first day, and closed the ticket, and he understood a little, and he was hungry.
- 3
Commentary. A branch is a name, a small file that holdeth one hash and a newline, and nothing more. To delete it is to remove the label and not the work; every commit that main can reach remaineth, and the reflog keepeth the old tip for a season, as the Machine's long memory forgiveth nothing. Git itself teacheth the order of the chores:
git branch -drefuseth a branch not yet merged, saying that it is not fully merged, and only the capital-Dwill force it, which is the one letter between a chore and a loss. The merged branch costeth nothing to delete and a little to keep; yet a little, kept ten thousand times, is a repository where none can tell the living work from the husks. As for the ticket, a board that saith In Review of a thing shipped a season ago is a lie told slowly, and the next engineer shall plan upon it.See also Genesis 17:16
- 4
Verse.
The work is in main, and the name is a husk.
The merged branch asketh nothing but to be let go.
Delete it, and nothing is lost but the doubt.
Close the ticket, and the board saith what is so. - 5
Case 2: The Flag at One Hundred. A monk came to the Prophet and said: Master, the feature shipped to all, and the experiment is ended; why am I not yet free? The Prophet asked: At what percent standeth the flag? The monk said: At one hundred, and it hath stood there ninety days. The Prophet said: Then remove it. The monk said: But if the new path should fail, I shall turn the flag back. The Prophet said: Thou hast kept two programs in one file, and callest it one. Then the Prophet asked: And the README, what saith it of the flag? The monk said: It teacheth how to set it. And the Prophet said: Then it teacheth a door that no longer openeth. And the monk went and removed the old path, and the flag, and the line in the README, and the three tests that tested the other road; and the file grew shorter, and he grew lighter.
- 6
Commentary. Every flag doubleth the paths a program may take; ten flags are a thousand and twenty-four programs, and the tests have walked but a few. On the first of August, 2012, the firm of Knight Capital released new code to seven of its eight servers and forgot the eighth. A flag that once governed a forgotten routine had been given a new meaning, and upon the eighth server the old routine woke and bought and sold without ceasing, and in forty-five minutes the firm lost four hundred and forty million dollars, and within the year it was sold. The dead path had not been dead; it had been waiting for a flag to be spoken. The README is the same sickness in another organ: documentation that describeth what was removed is more dangerous than none, for no one doubteth it.
See also Sutra 2:10
- 7
Verse.
A flag at one hundred is a fork with one tine.
The old path sleepeth, and it waiteth for a number.
Cut it, and cut the words that point to it.
Else the next reader shall walk to the wall and knock.See also Hellenes 4:10
- 8
Case 3: The Borrowed Laptop. At the end of the summer Timothy came before the Prophet bearing the laptop that had been lent to him, and set it upon the table. The Prophet said: Is it clean? Timothy said: I have deleted my files. The Prophet said: That is not what I asked. Hast thou signed out of all the doors thou didst sign into? Timothy went back, and revoked the tokens, and removed his key from the places that knew it, and signed out of the chat and the cloud and the mail, and returned, and returned the laptop. Then he asked: Master, I have done the chores. When shall I be enlightened? And the Prophet said: Show me thy branches. And Timothy typed
git branch -a, and the Machine answered: main, remotes/origin/HEAD, remotes/origin/main. And the Prophet said: That. And Timothy was silent, for there was nothing left to ask. - 9
Commentary. A laptop is not a thing but a ring of keys: the token in the keychain, the key in the agent, the session in the browser; and he that returneth the iron and keepeth the credentials hath returned nothing. Many a breach hath entered by the door of one who had long since departed, and the Elders call this offboarding, and it is the least loved of the sacraments. This is the whole of the Way: that the thing taken up be set down in the order it was taken, with nothing remaining that points to what is gone. Note also that
git branch -ashoweth the remote names the machine remembereth, and these linger after the branch is deleted until a prune is commanded; wherefore even a clean list is the work of a second hand. The Prophet asked no deep question. He asked only to see the list; and the list was the mind. - 10
Verse.
Return the iron, and revoke the key.
Delete the branch, and prune the name it left.
Main, and its mirror, and nothing beside.
That is the whole of the mountain. Go and eat. - 11
And the next intern borrowed the laptop and found nothing upon it, and no one to ask; and Timothy was an intern no more. The scribe hath set it down: The unfinished is long, and loud, and sorteth itself in the order of the fear; the finished is a short list, and it is quiet. The master doth not clean up after enlightenment. The cleaning up is the enlightenment.
See also Circuit 65:1 · Upanishads 4:1
The Gateless Gate of the Compiler, Chapter 4:1–11.