如何查找提交消息少于N个字符的提交?

时间:2009-10-16 16:26:49

标签: svn git language-agnostic version-control mercurial

在给定特定字符数时,是否有可能在任何现代SCM中获取完整的提交列表,其修订号以及执行此操作的用户?

我想知道哪些开发人员(如果有的话)让这一方面无用的提交。

Disclamer: 我知道短提交消息有时也很有用,但是当你试图教人们使用版本控制时第一次。

5 个答案:

答案 0 :(得分:6)

你当然可以用Mercurial做到这一点。

要防止首先使用短消息进行此类提交,可以使用挂钩。 example hook中的第一个hg book就是这样做的。

要查找已提交的变更集,您可以执行以下简短摘要:

hg log --template '{rev}:{node|short}\t{author|person}\t{desc|firstline}\n' | awk -F'\t' 'length($3) < 15'

15替换为您的“懒惰”值。

如果您希望在信息的其余部分很长的时候允许简短的摘要,我不确定如何做到这一点...也许其他人可以插话。

答案 1 :(得分:2)

在SVN中,您可以防止短提交消息首先发生,pre-commit hook拒绝提交短于特定长度的消息。或者,正如SilentGhost在下面的评论中指出的那样,您可以让预提交钩子允许签到但发送通知。

答案 2 :(得分:2)

这样的东西?将HEAD替换为任何修订范围,将80替换为您的最小提交消息字符。

git rev-list HEAD |
    xargs -iX sh -c\
        "if test \"\$(git show --quiet --pretty=format:%s%n%n%b X | wc -c)\" -lt 80; then echo X; fi"

答案 3 :(得分:1)

使用Subversion,您可以使用bugtraq-regex和bugtraq-warnifnoissue属性来警告用户提交消息是否未通过正则表达式。这是为了鼓励用户在其提交中添加错误跟踪系统ID,但我不明白为什么您不能使用它来要求最少数量的字符。

答案 4 :(得分:0)

通过解析git-log的输出肯定可以通过git执行此操作,默认情况下显示您提交的哈希,作者,日期和提交消息。它看起来像这样:

commit faa1f8bd1aacf30579512641c34908a7bf94978e
Author: Developer <dev@gmail.com>
Date:   Thu Oct 8 15:25:12 2009 -0500

    short commit message

    bugfixes   

commit bdf49034c2a113abcb39cfb5398289beb3a7c393
Author: Developer <dev@gmail.com>
Date:   Thu Oct 8 10:01:08 2009 -0500

    awesome commit message

    Here's an itemized list of changes:
      - fix spelling mistakes in error output
      - code can now solve NP-complete problems