NEWS.[12]*
文件etc/NEWS
及其兄弟舊版本NEWS.[12]*
包含自新石器時代以來每個Emacs版本的非常詳細的更改歷史記錄。 (最古老的是 - 可能是可以預測的 - 有點不太詳細。)
不幸的是,這些信息不是機器可讀的形式;但你仍然可以用精確度不夠完美的信息來尋找信息。
這是一個我拼湊在一起的快速而髒的Awk腳本。
#!/bin/sh
# Path to your emacs etc directory
emacs_etc=$HOME/git/emacs-snapshot/etc
# Reverse the order of the wildcard matches so we search newest to oldest
printf '%s\n' $emacs_etc/NEWS.[12]* $emacs_etc/NEWS |
tac |
xargs awk -v fn="$1" 'BEGIN { regex="^[*]+ New .*" fn }
/^\*[^*]/ { version=$NF }
$0~regex { print version ":" $0; exit 0 }
END { exit 1 }'
這是因爲它需要進入稍微不精確與New
開始(這似乎是較新的條目有些一致,但在老的少的話),它會發現搜索的前綴字符串,不一定完全匹配。
但是,您正在查找的更改與此預期格式不符。 The commit which added set-default-toplevel-value
只是added a free-form notice to NEWS
它沒有提到它引入了一個新的變量。
爲了實際找到它,我將它定位在源代碼樹(src/eval.c
)和簡單的git blame
上,該行包含直接指向相關提交的定義。 (在一般情況下,你可能需要剝離提交圖層;幸運的是,Git有fairly good support這種東西。)
我認爲這個問題的通常解決方案是用最古老的Emacs你想支持,並看看警告。 OTOH讓您的用戶爲您完成這項工作的優勢在於,它還會爲您提供有關您應該關心哪些Emacs版本的反饋。 – Stefan