保留一个变更日志来描述对程序源文件所做的所有更改。这样做的目的是为了让将来调查错误的人员知道可能引入错误的更改。通常,通过查看最近更改的内容可以发现新的错误。更重要的是,通过提供冲突概念的出现历史、来源以及做出冲突更改的原因,变更日志可以帮助您消除程序不同部分之间的概念不一致。
因此,变更日志应该足够详细和准确,以提供此类软件取证通常需要的信息。具体而言,变更日志应该使查找以下问题的答案变得容易:
历史上,变更日志保存在特殊格式的文件中。现在,项目通常将其源文件保存在版本控制系统(VCS)下,例如 Git、Subversion 或 Mercurial。如果 VCS 存储库是公开可访问的,并且更改是单独提交的(每个逻辑变更集一个提交),并记录每个更改的作者,那么可以使用 VCS 记录的信息从 VCS 日志中生成变更日志,并使用合适的 VCS 命令回答上述问题。(但是,VCS 日志消息仍然需要提供一些支持信息,如下所述。)维护此类 VCS 存储库的项目可以决定不维护单独的变更日志文件,而是依赖 VCS 来保存变更日志。
如果您决定不维护单独的变更日志文件,您仍然应该考虑在发布 tar 包中提供它们,以便那些希望在不访问项目 VCS 存储库的情况下查看变更日志的用户受益。存在一些脚本可以从 VCS 日志生成 ChangeLog 文件;例如,Gnulib 的一部分 gitlog-to-changelog 脚本可以为 Git 存储库执行此操作。在 Emacs 中,命令 C-x v a (vc-update-change-log
) 可以完成从 VCS 日志增量更新 ChangeLog 文件的工作。
如果确实维护了单独的变更日志文件,它们通常被称为 ChangeLog,并且每个此类文件都覆盖整个目录。每个目录可以有自己的变更日志文件,或者一个目录可以使用其父目录的变更日志——这取决于您。
• 变更日志概念 | ||
• 变更日志的风格 | ||
• 简单的更改 | ||
• 条件更改 | ||
• 指示更改的部分 |