这个问题的需求是
今天,我们在提交消息中使用标志,例如
Add|Ref|Rem|Fix: <msg>
用于通常的提交。
因此,我对此的第一个尝试就是为这些标志添加另一层,例如
CL-Add: feature X
(CL = changelog)然后解析^CL-(Add|Ref|Rem|Fix)
的所有提交消息以添加到更改日志。
但是,接下来,您将如何处理为更改日志(即过高级别)编写提交消息的可能性;或有关同一更改日志问题的多条消息。也许在合并功能分支时应该提取更改日志消息?是否有SCM的功能:s(例如git)可以为您处理此问题?
简单地说:是否有行业标准策略或工具,可以轻松地将有用的提交消息提取到更改日志中?
答案 0 :(得分:3)
过去,我自己也没有运气。基本上,实际上更多工作是让每个开发人员在每次提交时都会想到他们的提交消息是否对客户来说太可怕了。开发人员通常不是做出决定的合适人选,而且一次做一点也是效率低下的。
经过大量的实验,对我有用的东西是微不足道的:在每个版本发布之前,让一个人从上一个版本开始经历git日志,并将所有有趣的东西写入changelog文件。这真的不是比其他方式更多的工作;大多数工作是决定,而不是措辞。决策过程需要特定的思维模式,因此让一个人在大批量中完成它比一次开发一小部分的开发人员更有效率。 (按照这种方式考虑:您不必在缓存中交换“提交消息客户检查”部分作业。)
如果您确实希望使用此类信息标记提交消息,则至少应考虑使用git notes
而不是原始提交消息。然后,如果有人通过将提交错误地标记为错误/功能/等来搞砸它,您可以通过更新注释来修复它。
答案 1 :(得分:1)
我不知道有任何这样的标准工具,但由于你有一段时间没有得到答案,这里有一些想法:
首先,正如你所建议的那样,试图避免使用CHANGELOG文件通常是一个好主意,因为文件往往导致所有合并冲突。 (除非你碰巧有一个智能的自动合并工具。)
类似于CL:或Log:前缀以便于提取可能是一个好主意。关于Add / Ref / Rem / Fix :(我假设Ref
和Rem
代表“Refactor”和“Remove”,对吗?)当你写一个更改日志时,我宁愿坚持自由格式的条目。例如,我不知道该重构属于成一个更新日志,和功能,是高层次的,足以保证变更日志条目通常不会得到彻底的去除 - 他们,而会改成一些其他形式
但是,接下来,您将如何处理为更改日志(即过高级别)编写提交消息的可能性;
我会说,将(CL:
- 标记的)高级描述放在提交消息的一个段落中,将低级技术描述放在另一个段落中。
或有关同一更改日志问题的多条消息。
我们正在谈论这样的事情,对吧?
这就是我认为“自动更改日志”变得棘手的地方。除非你愿意在事后修改和编辑提交消息(比如从上面的commit(1)中删除“CL:”),否则我建议每次发布时唯一可行的方法就是这样做,提取从git的日志中的所有标记的段落,因为你的最后一个版本,并手动编辑结果列表中,合并之类的东西(1)和(2)上述在一起,转身,说,“固定#145”,“固定#153 “,”将#164“固定为一行”已修复#145,#153和#164。“
希望我能够提供一些灵感。让我们知道你最终在做什么!
答案 2 :(得分:1)
查看vclog。