Подробная запись ChangeLog обычно сообщает, кто, когда и какую функцию изменил и почему это изменение было сделано.
И это для каждой отдельной функции в дереве исходного кода!
Как я понимаю ChangeLogпришли из прошлого, когда не было хороших VCS.
Так что традиционный ChangeLog вообще не нужен, так как вы можете получить все это из:
$ svn log .
$ hg log .
$ git log .
$ bzr log .
Для краткости ChangeLog нужна только одна возможная потребностьСводка между версиями продукта, предназначенная только для пользователя (например, при появлении новой версии разработчик подготовит ChangeLog, чтобы описать заметные / видимые изменения).
Или я ошибаюсь?
От http://autotoolset.sourceforge.net/tutorial.html#SEC45:
The ChangeLog file: Use this file to record all the changes that you make to your
source code. If your source code is distributed among many subdirectories,
and there is reason enough to think of the contents of the subdirectories
as different subpackages,then please maintain a separate `ChangeLog'
file for each subdirectory.
Выглядит архаично и догматично.ChangeLog требуется для автоинструментов и "стандартов кодирования GNU".
Источник GNU Emacs содержит множество огромных ChangeLogs (многие разбиты на множество частей):
$ find emacs-22.3 -name "ChangeLog*" | xargs cat | wc -c
13605747
Я могу получить сводный журнал изEmacs bzr репо в течение 1 минуты и поиск по нему, вместо этого ищите каждый отдельный ChangeLog и с современными инструментами, такими как Emacs VC
или Tortoise SVN/HG
, немедленно получите diff для изменений.
UPDATE ОбоснованиеИспользование ChengeLog происходит от тупости системы управления обслуживанием RCS / CVS.Проверьте http://www.red -bean.com / cvs2cl / changelogs.html раздел «Журналы изменений и журнал CVS».Все современные VCS предоставляют / позволяют критиковать эту статью в CVS.
Также существует множество сценариев, которые преобразуют вашу историю VCS в стиль ChangeLog.Так что отклонить все ваши ChangeLog .
Если вы хотите предоставить ориентированную на пользователя информацию о функциях / обратной совместимости / и т.д. между версиями, используйте файл NEWS: http://www.gnu.org/prep/standards/html_node/NEWS-File.html