详细的 ChangeLog 条目通常会告诉谁、何时、什么功能发生了变化,以及为什么要进行这种变化。
这适用于源代码树中的每个单独的函数!
据我了解,ChangeLog 来自过去没有好的 VCS。
因此,传统的 ChangeLog 根本不需要,因为您可以从以下位置获取所有内容:
$svn 日志。 $汞日志。 $ 混帐日志。 $ bzr 日志。
对于产品版本之间的简短摘要,ChangeLog 只有一种可能的需求,并且仅供用户使用(例如,当新版本到来时,开发人员准备 ChangeLog 描述显着/可见的更改)。
还是我错了?
来自http://autotoolset.sourceforge.net/tutorial.html#SEC45:
ChangeLog 文件:使用此文件记录您对您的 源代码。如果您的源代码分布在许多子目录中, 并且有足够的理由考虑子目录的内容 作为不同的子包,请维护一个单独的`ChangeLog' 每个子目录的文件。
看起来古老而教条。自动工具和“GNU 编码标准”要求的变更日志。
GNU Emacs 源代码包含许多巨大的变更日志(许多被许多部分分割):
$ find emacs-22.3 -name "ChangeLog*" | xargs 猫 | 厕所-c 13605747
我可以从 Emacs bzr repo 获取摘要日志大约 1 分钟,然后通过它进行搜索,而不是搜索每个单独的 ChangeLog 并使用现代工具(如Emacs VC
或Tortoise SVN/HG
立即获取 diff 进行更改)。
UPDATE使用 ChengeLog 的理由来自 RCS/CVS 服务控制系统的愚蠢。检查http://www.red-bean.com/cvs2cl/changelogs.html部分“ChangeLogs 和 CVS 日志”。所有现代 VCS 都提供/允许 CVS 中这篇文章的批评。
此外,还有许多将您的 VCS 历史记录转换为 ChangeLog 样式的 sctipts。所以拒绝你所有的ChangeLog。
如果您想在版本之间提供面向用户的功能/向后兼容性/等信息,请使用 NEWS 文件:http ://www.gnu.org/prep/standards/html_node/NEWS-File.html