以下是一些变更日志条目的简单示例,首先是标题行,说明谁进行了更改以及何时安装,然后是对特定更改的描述。(这些示例来自 Emacs。)请记住,显示更改日期、作者姓名和电子邮件地址的行仅在单独的 ChangeLog 文件中需要,而不是当变更日志保存在 VCS 中时。
2019-08-29 Noam Postavsky <[email protected]> Handle completely undecoded input in term (Bug#29918) * lisp/term.el (term-emulate-terminal): Avoid errors if the whole decoded string is eight-bit characters. Don't attempt to save the string for next iteration in that case. * test/lisp/term-tests.el (term-decode-partial) (term-undecodable-input): New tests. 2019-06-15 Paul Eggert <[email protected]> Port to platforms where tputs is in libtinfow * configure.ac (tputs_library): Also try tinfow, ncursesw (Bug#33977). 2019-02-08 Eli Zaretskii <[email protected]> Improve documentation of 'date-to-time' and 'parse-time-string' * doc/lispref/os.texi (Time Parsing): Document 'parse-time-string', and refer to it for the description of the argument of 'date-to-time'. * lisp/calendar/time-date.el (date-to-time): Refer in the doc string to 'parse-time-string' for more information about the format of the DATE argument. (Bug#34303)
如果您提到修改的函数或变量的名称,请务必使用全名。不要缩写函数或变量名,也不要组合它们。后续维护者经常会搜索函数名以查找与其相关的所有变更日志条目;如果您缩写名称,他们在搜索时将找不到它。
例如,有些人可能会尝试通过编写 '* register.el ({insert,jump-to}-register)' 来缩写函数名组;这不是一个好主意,因为搜索 jump-to-register
或 insert-register
将不会找到该条目。
用空行分隔不相关的变更日志条目。不要在条目的单个更改之间放置空行。当连续的单个更改在同一个文件中时,可以省略文件名和星号。
通过用 ')' 关闭续行,而不是用 ',',并用 '(' 打开续行来中断长的函数名列表。这使得 Emacs 中的高亮显示效果更好。这是一个例子
* src/keyboard.c (menu_bar_items, tool_bar_items) (Fexecute_extended_command): Deal with 'keymap' property.
向 ChangeLog 添加条目的最简单方法是使用 Emacs 命令 M-x add-change-log-entry,或者它的变体 C-x 4 a (add-change-log-entry-other-window
)。这会自动收集更改的文件名和更改的函数或变量,并根据上述约定格式化变更日志条目,让您来描述对该函数或变量所做的更改。
当您安装其他人的更改时,将贡献者的姓名放在变更日志条目中,而不是放在条目的正文中。换句话说,这样写
2002-07-14 John Doe <[email protected]> * sewing.c: Make it sew.
而不是这样写
2002-07-14 Usual Maintainer <[email protected]> * sewing.c: Make it sew. Patch by [email protected].
当将其他人的更改提交到 VCS 时,请使用 VCS 功能来指定作者。例如,使用 Git 时,请使用 git commit --author=author。
至于日期,应该是您应用更改的日期。(使用 VCS 时,请使用相应的命令行开关,例如 git commit --date=date。)
现代 VCS 具有应用通过电子邮件发送的更改的命令(例如,Git 具有 git am);在这种情况下,变更集的作者和创建日期将自动从电子邮件消息中收集并记录在存储库中。如果使用适当的 VCS 命令(例如 git format-patch)准备补丁,则电子邮件正文还将包含变更集的原始作者,因此重新发送或转发邮件不会影响将更改归因于其作者。因此,我们建议您要求您的贡献者使用诸如 git format-patch 之类的命令来准备补丁。