在给定特定字符数时,是否有可能在任何现代SCM中获取完整的提交列表,其修订号以及执行此操作的用户?
我想知道哪些开发人员(如果有的话)让这一方面无用的提交。
Disclamer: 我知道短提交消息有时也很有用,但是当你试图教人们使用版本控制时第一次。
答案 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