有没有办法在SVN中生成更改日志

时间:2008-09-19 14:52:16

标签: svn cvs changelog

当提交到SVN时,我可以添加一个顶级提交消息来详细说明提交的内容,但理想情况下我想要一种方法来评论各个文件以及它们内部的变化。我在以前的工作中看到了类似的东西,但这是使用CVS(我不记得是否通过家庭酿造脚本来生成骨架文件)

我看了一下变更列表,但我再次认为(虽然我愿意被证明是错误的),这给出了如下所述的那种粒度。

理想情况下,我正在寻找以下内容:

Foo.vb

  
      
  • 添加了新功能栏
  •   

Bar.vb

  
      
  • 删除了函数foo
  •   
  • 在xyz中添加功能来执行abc   +/-记录错误的修改函数
  •   

5 个答案:

答案 0 :(得分:4)

只要完成一项特定任务,您就可以提交。无论如何,这应该会带来更好的评论。在必要的三个文件上阅读“已实施电子邮件验证”的评论告诉我比“添加功能verify_email”更多的内容。我可以在差异中看到后者。

答案 1 :(得分:2)

我会在单独的提交消息中执行此操作。 TortoiseSVN具有文件名自动完成功能,因此极大地帮助了这一点。

在提交并将文件名复制/粘贴到提交消息之前,您可以做的另一件事就是svn st。

哦,一定要强烈质疑这个价值。我知道一些OSS项目(linux?)需要这种保真度,但对于很多项目来说这只是噪音。差异可以告诉你更多,更准确地说。

您可能想要考虑的另一件事是使用Git。 Git允许您以较小的步骤在本地提交。然后,您可以单独将所有提交推送到主服务器,或者将单个提交中的所有提交消息压缩到单个提交中。这是一种简化的解释,但它可能值得一试。

答案 2 :(得分:2)

SVN和CVS之间的一个本质区别是变化是以原子方式提交的。在CVS中,每个文件都有自己的版本,但在SVN中,版本适用于整个项目,包括一起签入的所有文件。

以下是解决方案的四个想法:

  1. 使用自己的日志消息单独检入每个程序。这可能意味着,如果您签入五个文件,您将“用完”五个版本,其中四个可能导致构建中断。
  2. 在单独的路径(即您自己的私人分支机构)上进行开发,如上所述,然后在战略时刻将您的分支合并到主干。
  3. 检查所有内容,并将各个记录作为注释保存在程序标题中。这可能意味着(一点点)额外的工作,但无论如何你必须编写单独的登录消息。
  4. 对所有文件进行单一签入,但是有一个很好的完整日志消息,详细说明每个文件的每个部分。

答案 3 :(得分:2)

我写过一个名为MOAP

的项目

它的一个功能是从你的本地差异生成一个ChangeLog条目(目前支持bazaar,cvs,svn,git和darcs)。您可以通过运行'moap changelog prepare'或'moap cl prep'来执行此操作。如果启用该选项,该条目也可以包含更改的功能。

然后,您可以更改该条目,描述您的更改。您可以删除不希望在下一次提交过程中提交的文件。

然后,您可以运行'moap changelog commit'来提交ChangeLog条目中描述的更改。它只会提交那里列出的文件,并将所有其他更改保留在本地。

希望有所帮助!

答案 4 :(得分:0)

如果在每个提交的文件中写入注释的方式有一些规则,则可以获得这种结果。之后可以通过svn触发器提取这些注释。