Why maintain traditional detailed ChangeLog in modern world (with SVN, Mercurial, Git)?

时光总嘲笑我的痴心妄想 提交于 2019-12-04 06:37:55

With distributed VCS, it has become a standard to "Commit Early, Commit Often". With such approach, you will end up with more commits than you have actual new features or bug fixes. The changelog is supposed to summarize the changes to the application as a whole. The VCS log on the other hand shows history of the source code, i.e. how did the feature end up being implemented.

As you say, a manually maintained change log can be useful as a summary of user-visible changes, or as an overview of large-scale changes that might be hard to determine by looking at a lot of individual commit messages.

A changelog is useful for people who aren't developers and are looking to get a broader picture as to what has changed. While a changelog can get detailed, I wouldn't expect a user of any application I wrote to go through git log output to figure out what's changed.

Log output from your VCS is likely to be more fine-grained (i.e. you might have a commit that's labelled "fixed typos" -- is the user likely to care?) and not provide enough context. The changelog gives them that context.

In addition to your reasons (user only, etc), I think that they can be very useful while doing development. I often will make a couple changes before committing to source control and will annotate them in the change log while working.

Also, if changes are made and then removed, this may be harder to pick out of a source control revision log than a single file (e.g. just delete a line). As a side note, I tend to keep my change log under source control along side my source code.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!