为什么要维护传统的详细ChangeLog在现代世界(用SVN,Mercurial,Git)? [英] Why maintain traditional detailed ChangeLog in modern world (with SVN, Mercurial, Git)?

查看:244
本文介绍了为什么要维护传统的详细ChangeLog在现代世界(用SVN,Mercurial,Git)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

详细的ChangeLog条目通常告诉谁,什么时候,什么功能改变,为什么这个改变完成。



这是源代码树中的每个单独的函数! / p>

据我所知,ChangeLog来自过去没有好的VCS。



因此,传统的ChangeLog不需要因为你可以得到它所有从:

 
$ svn日志。
$ hg log。
$ git log。
$ bzr log。

ChangeLog只有一个可能的需求,用于产品版本之间的简短摘要,仅供用户使用(例如,



http://autotoolset.sourceforge.net/tutorial.html#SEC45

 
ChangeLog文件:使用此文件记录您对
源代码所做的所有更改。如果你的源代码分布在许多子目录中,
,并且有足够的理由认为子目录
的内容是不同的子包,那么请为每个子目录保持一个单独的`ChangeLog'
文件子目录。

看起来古老和教条。



GNU Emacs源包含许多巨大的ChangeLogs(许多部分分开):

 
$ find emacs-22.3 -nameChangeLog *| xargs cat | wc -c
13605747

我可以从Emacs bzr repo获得约1分钟的摘要日志,每个单独的ChangeLog和现在的工具,如 Emacs VC Tortoise SVN / HG 立即得到diff的变化。 >

UPDATE 使用ChengeLog的理由来自RCS / CVS服务控制系统的哑铃。检查 http://www.red-bean.com/cvs2cl/changelogs.html部分ChangeLogs和CVS日志。所有现代VCS提供/允许本文在CVS中批评。



此外,还有很多sctipts将您的VCS历史转换为ChangeLog风格。



如果您希望提供面向用户的功能/后兼容性信息,请拒绝 / etc之间使用NEWS文件: http://www.gnu。 org / prep / standards / html_node / NEWS-File.html

解决方案

标准到提早提交,经常提交。有了这样的方法,你会得到更多的提交,比你有实际的新功能或错误修复。 changelog应该总结应用程序的整体变化。另一方面,VCS日志显示源代码的历史,即该功能最终如何实现。


Detailed ChangeLog entry usually tell who, when and what function changed and for why this change done.

And this for every separate function in the source code tree!

As I understand ChangeLog come from past when there were no good VCS.

So traditional ChangeLog doesn't need at all as you can get it all from:

  $ svn log .
  $ hg log .
  $ git log .
  $ bzr log .

Only one possible needs for ChangeLog for short summary between product versions and intended for user only (for example, when new version come, developer prepare ChangeLog describe notable/visible changes).

Or I am wrong?

From 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.

Look archaic and dogmatic. ChangeLog required by autotools and by "GNU coding standards".

GNU Emacs source contain a lot of huge ChangeLogs (many split by many parts):

  $ find emacs-22.3 -name "ChangeLog*" | xargs cat | wc -c
13605747

I can get summary log from Emacs bzr repo for about 1 min and search through it instead search for each separate ChangeLog and with modern tools like Emacs VC or Tortoise SVN/HG immediately get diff for change.

UPDATE Rationale to use ChengeLog come from dumbness of RCS/CVS servioning control system. Check http://www.red-bean.com/cvs2cl/changelogs.html section "ChangeLogs and the CVS log". All modern VCS provide/allow that criticize by this article in CVS.

Also there exist a lot of sctipts that convert your VCS history to ChangeLog style. So reject all of your ChangeLog's.

If you want provide user oriented info of features/back compatibility/etc between versions use NEWS file: http://www.gnu.org/prep/standards/html_node/NEWS-File.html

解决方案

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.

这篇关于为什么要维护传统的详细ChangeLog在现代世界(用SVN,Mercurial,Git)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆