維護一份變更日誌,以描述對程式原始碼檔案所做的所有變更。這樣做的目的是為了讓未來調查錯誤的人員能夠了解可能引入錯誤的變更。通常,透過查看最近變更的內容可以找到新的錯誤。更重要的是,變更日誌可以幫助您消除程式不同部分之間的概念不一致性,方法是提供衝突概念如何產生、它們來自何處,以及為何進行衝突變更的歷史記錄。
因此,變更日誌應詳細且準確,足以提供此類軟體鑑識通常所需的資訊。具體來說,變更日誌應使尋找以下問題的答案變得容易:
從歷史上看,變更日誌維護在特殊格式化的檔案中。如今,專案通常將其原始碼檔案保存在版本控制系統 (VCS) 下,例如 Git、Subversion 或 Mercurial。如果 VCS 儲存庫是公開可存取的,並且變更分別提交到其中(每個邏輯變更集一個提交)並記錄每個變更的作者,那麼 VCS 記錄的資訊可以用於從 VCS 日誌產生變更日誌,並透過使用合適的 VCS 命令來回答上述問題。(但是,VCS 日誌訊息仍然需要提供一些支援資訊,如下所述。)維護此類 VCS 儲存庫的專案可以決定不維護單獨的變更日誌檔案,而是依賴 VCS 來保存變更日誌。
如果您決定不維護單獨的變更日誌檔案,您仍然應該考慮在發布 tarball 中提供它們,以方便想要在不存取專案 VCS 儲存庫的情況下查看變更日誌的使用者。存在一些腳本可以從 VCS 日誌產生 ChangeLog 檔案;例如,Gnulib 的一部分 gitlog-to-changelog 腳本可以為 Git 儲存庫執行此操作。在 Emacs 中,命令 C-x v a (vc-update-change-log
) 可以從 VCS 日誌增量更新 ChangeLog 檔案。
如果確實維護了單獨的變更日誌檔案,它們通常被稱為 ChangeLog,並且每個此類檔案涵蓋整個目錄。每個目錄可以有自己的變更日誌檔案,或者目錄可以使用其父目錄的變更日誌—這取決於您。
• 變更日誌概念 | ||
• 變更日誌的風格 | ||
• 簡單變更 | ||
• 條件變更 | ||
• 指示變更的部分 |