6

详细的 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 VCTortoise 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

4

4 回答 4

6

使用分布式 VCS,它已成为“早期提交,经常提交”的标准。使用这种方法,您最终将获得比实际的新功能或错误修复更多的提交。更改日志应该总结整个应用程序的更改。另一方面,VCS 日志显示源代码的历史记录,即该功能最终是如何实现的。

于 2010-09-14T21:32:27.163 回答
4

正如您所说,手动维护的更改日志可用作用户可见更改的摘要,或者作为通过查看大量单独的提交消息可能难以确定的大规模更改的概述。

于 2010-09-14T21:16:14.417 回答
4

更改日志对于非开发人员并希望更广泛地了解更改内容的人很有用。虽然变更日志可以变得详细,但我不希望我编写的任何应用程序的用户通过git log输出来找出发生了什么变化。

VCS 的日志输出可能更细粒度(即,您可能有一个标记为“固定错别字”的提交——用户可能关心吗?)并且没有提供足够的上下文。变更日志为他们提供了上下文。

于 2010-09-14T21:17:41.307 回答
2

除了您的原因(仅限用户等)之外,我认为它们在进行开发时非常有用。我经常会在提交源代码控制之前进行一些更改,并在工作时在更改日志中注释它们。

此外,如果进行更改然后删除,这可能比单个文件更难从源代码控制修订日志中挑选出来(例如,只删除一行)。作为旁注,我倾向于将我的更改日志与源代码一起保存在源代码控制之下。

于 2010-09-14T21:20:21.663 回答