陳光宇 2083 · 小說

她只動過別人一行

──

第 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。


【未完,待續】

CHAPTER INDEX · 章節目錄