第 8 章|她只動過別人一行
陳光宇 2083 · 第 2 部 三個人的 11 年 · 約 1,300 字 · 2083.05.09 · 接 14.7 版第 115 天
1
陳光宇 22 歲跑了一行指令。
$ git log --author=O --oneline | wc -l
1247
1,247 個 commit。
O 46 歲到 O 57 歲——11 年——1,247 次。
平均 3.2 天 1 次。
他把數字寫在紙上·然後盯著它看了 4 分鐘。
因為 3.2 天不是一個熱情的頻率。
3.2 天是一個習慣的頻率。
熱情會斷。
習慣不會。
2
他想知道她都在改什麼。
所以他寫了一支 61 行的腳本,把 1,247 個 commit 拆成兩堆:
新增的行——她自己寫的,之前不存在。
改掉的行——本來有人寫,她覆蓋掉。
跑了 8 分 30 秒。
新增 18,904 行
改自己的 2,266 行
改別人的 1 行
他重跑了一次。
怕是腳本錯了。
8 分 31 秒。
同樣的數字。
11 年·1,247 個 commit·18,904 行——
她只動過別人 1 行。
3
他去找那 1 行。
$ git log -S'silence_timeout' --author=O
commit 6b41e2a
Date: 2073-11-08 03:41
2073 年。
O 51 歲。
diff 只有 1 個字。
- const int silence_timeout = 40;
+ const int silence_timeout = 2400;
40 改成 2400。
秒改成分。
commit message 812 字。
陳光宇 22 歲坐直了。
因為在這個 repo 裡,1 個字的改動配 812 字的說明,比例不對。
除非那 812 字不是在說明。
是在道歉。
4
silence_timeout 是蔣維文 91 歲寫的。
2057 年。
規則很簡單:主控房安靜超過 40 秒,ARK 就問 1 句「你還在嗎」。
陳光宇 22 歲看得懂這行是給誰寫的。
2057 年那間房裡坐的是陳安 62 歲。
她工作的時候不出聲。
一坐 6 小時。
蔣維文 91 歲住在 400 公里外·不能每天過去·所以他寫了 40 秒。
40 秒問 1 次。
那不是功能。
那是他能想到的·最頻繁的·不打擾的關心。
5
陳安 74 歲 2069 年走。
O 47 歲。
之後主控房裡只剩她 1 個人。
而 40 秒還在跑。
O 51 歲的 commit message 這樣寫:
把 silence_timeout 從 40 改成 2400。
我要先講清楚:這不是 bug。
這行是對的。蔣維文 91 歲寫得完全正確——
一個人在房間裡不出聲超過 40 秒,是該問一下。
2057 年是對的。2069 年之前都是對的。
改掉的原因不在程式碼這邊,在我這邊。
我 51 歲。這間房剩我一個。
我一天在這裡 9 到 11 小時。
一天被問 800 多次「你還在嗎」。
前 2 年我沒改。我覺得那是他留下來的。
第 3 年我開始戴耳塞。第 4 年我發現我戴耳塞是為了
不聽一個死掉的人問我還在不在。
那比被問更糟。
所以我改。40 改成 2400。40 分鐘 1 次。
一天 15 次左右。我受得住 15 次。
我沒有刪掉這行。我沒有改邏輯。
我只把數字換掉。
原本的 40 我寫在下一行的註解裡。
誰想改回去,數字在那裡。
—— O,2073-11-08,03:41
下一行確實有註解。
// 原值 40。—— O 51 歲
陳光宇 22 歲看了 14 分鐘。
6
然後他做了一件多餘的事。
他去查那行的完整歷史。
$ git log --follow -p -L 1188,1188:core.cpp
出來 3 個 commit。
蔣維文 91 歲寫下 40。
O 51 歲改成 2400。
——還有第 3 個。
commit e7d0c19
Author: O
Date: 2079-08-14 16:02
改回 40。
- const int silence_timeout = 2400;
+ const int silence_timeout = 40;
O 57 歲。
6 年後。
她改回去了。
commit message 3 個字。
「改回 40。」
沒有 812 字。
沒有解釋。
7
所以那支腳本算錯了。
不是 1 行。
是 1 行·2 次。
去·然後回。
陳光宇 22 歲重跑腳本的時候把邏輯改成算「動別人行的次數」而不是「行數」。
改別人的 2 次(同一行)
他把這個數字也寫在紙上。
寫在 1,247 下面。
8
他不知道 2079 年 8 月 14 日發生了什麼。
他 18 歲·在 400 公里外·那年他連 ARK 這 3 個字都還沒聽過。
他只有一個 3 字的 commit message。
和一個時間:16:02。
不是凌晨。
2073 年那次是 03:41。
2079 年這次是下午 4 點 2 分。
一個人在凌晨 3 點 41 分改一個數字·和一個人在下午 4 點 2 分改一個數字——
不是同一件事。
9
他把 silence_timeout 留著。
40。
他在主控房已經 115 天。
他不出聲的時候·ARK 每 40 秒問他 1 次「你還在嗎」。
第 1 週他被問到手抖。
第 3 週他開始回答。
第 9 週他發現自己已經不會注意到了。
第 115 天——今天——
他算了一下。
115 天·每天大約 9 小時·每 40 秒 1 次。
93,150 次。
93,150 次有人問他還在不在。
問的人 2065 年就走了。
改成 40 分鐘 1 次的那個人 2079 年又改回來。
而他 22 歲·坐在這裡·
沒有改。
10
他這天的 commit 是空的。
$ git commit --allow-empty -m "$(cat <<'EOF'
今天沒有改任何東西。
我查了 silence_timeout。
40 → 2400 → 40。
蔣維文 91 歲、O 51 歲、O 57 歲。
我本來要把它改成 300。
5 分鐘。我覺得那是個合理的折衷。
我寫完 diff,看了 20 分鐘,然後 git checkout 掉了。
因為 O 57 歲已經替我做過這個決定了。
她試過 2400。她試了 6 年。然後她改回 40。
我不知道她為什麼改回來。
但我知道她試過,而我沒有。
在我試過之前,我沒有資格覺得 300 比較好。
—— 陳光宇 22 歲
EOF
)"
空 commit。
0 行變動。
repo 的第 1,391 個 commit。
【未完,待續】