用于将最有用提交的消息提取到更改日志的策略

时间:2010-09-25 11:43:52

标签: git version-control logging changelog

这个问题的需求是

  • 为经理/客户提供以下更改日志:
    • 确实包含“让用户拥有其他地址”
    • 不包括“修复因X而导致地址被覆盖的错误”
  • 避免查看完整的日志历史记录,以便为每个版本查找最重要的提交(通常向后兼容
  • 将其作为易于阅读作为典型的游戏更改日志(“固定余额问题:X”和“图形驱动程序Y慢慢渲染游戏”)

今天,我们在提交消息中使用标志,例如

Add|Ref|Rem|Fix: <msg>用于通常的提交。

因此,我对此的第一个尝试就是为这些标志添加另一层,例如

CL-Add: feature X(CL = changelog)然后解析^CL-(Add|Ref|Rem|Fix)的所有提交消息以添加到更改日志。

但是,接下来,您将如何处理为更改日志(即过高级别)编写提交消息的可能性;或有关同一更改日志问题的多条消息。也许在合并功能分支时应该提取更改日志消息?是否有SCM的功能:s(例如git)可以为您处理此问题?

简单地说:是否有行业标准策略或工具,可以轻松地将有用的提交消息提取到更改日志中?

3 个答案:

答案 0 :(得分:3)

过去,我自己也没有运气。基本上,实际上更多工作是让每个开发人员在每次提交时都会想到他们的提交消息是否对客户来说太可怕了。开发人员通常不是做出决定的合适人选,而且一次做一点也是效率低下的。

经过大量的实验,对我有用的东西是微不足道的:在每个版本发布之前,让一个人从上一个版本开始经历git日志,并将所有有趣的东西写入changelog文件。这真的不是比其他方式更多的工作;大多数工作是决定,而不是措辞。决策过程需要特定的思维模式,因此让一个人在大批量中完成它比一次开发一小部分的开发人员更有效率。 (按照这种方式考虑:您不必在缓存中交换“提交消息客户检查”部分作业。)

如果您确实希望使用此类信息标记提交消息,则至少应考虑使用git notes而不是原始提交消息。然后,如果有人通过将提交错误地标记为错误/功能/等来搞砸它,您可以通过更新注释来修复它。

答案 1 :(得分:1)

我不知道有任何这样的标准工具,但由于你有一段时间没有得到答案,这里有一些想法:

首先,正如你所建议的那样,试图避免使用CHANGELOG文件通常是一个好主意,因为文件往往导致所有合并冲突。 (除非你碰巧有一个智能的自动合并工具。)

类似于CL:或Log:前缀以便于提取可能是一个好主意。关于Add / Ref / Rem / Fix :(我假设RefRem代表“Refactor”和“Remove”,对吗?)当你写一个更改日志时,我宁愿坚持自由格式的条目。例如,我不知道该重构属于成一个更新日志,和功能,是高层次的,足以保证变更日志条目通常不会得到彻底的去除 - 他们,而会改成一些其他形式

  

但是,接下来,您将如何处理为更改日志(即过高级别)编写提交消息的可能性;

我会说,将(CL: - 标记的)高级描述放在提交消息的一个段落中,将低级技术描述放在另一个段落中。

  

或有关同一更改日志问题的多条消息。

我们正在谈论这样的事情,对吧?

  1. (2011-01-03)CL:将whizbar默认值更改为200。
  2. (2011-01-11)CL:将whizbar默认值更改为150,如果foosnub为true,则更改为250.
  3. 这就是我认为“自动更改日志”变得棘手的地方。除非你愿意在事后修改和编辑提交消息(比如从上面的commit(1)中删除“CL:”),否则我建议每次发布时唯一可行的方法就是这样做,提取从git的日志中的所有标记的段落,因为你的最后一个版本,并手动编辑结果列表中,合并之类的东西(1)和(2)上述在一起,转身,说,“固定#145”,“固定#153 “,”将#164“固定为一行”已修复#145,#153和#164。“

    希望我能够提供一些灵感。让我们知道你最终在做什么!

答案 2 :(得分:1)

查看vclog