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