Mik*_*nke 5 git version-control hook trac commit
我需要确保提交消息是合法的否则拒绝它.提交消息应该像"#123修复缺失括号"
我想确保它以hash开头,有一个整数(没有123a),并且消息至少有10个单词.
很高兴:消息不会完全相同
我正在使用此Trac插件进行更改集,它更详细地描述了提交消息格式http://trac-hacks.org/wiki/TracTicketChangelogPlugin
谢谢,
您可以pre-receive根据自己喜欢的任何条件创建拒绝提交的挂钩 - 您只需将错误打印到标准输出并以非零状态退出.例如,有些东西:
#!/bin/sh
while read rev_old rev_new ref
do
MALFORMED="$(git rev-list --oneline $rev_old..$rev_new | egrep -v '^[a-f0-9]+ #[0-9]+ ')"
if [ x"$MALFORMED" != x ]
then
echo Some commits had a malformed subject line
exit 1
fi
done
Run Code Online (Sandbox Code Playgroud)
(我没有测试过,但是你明白了......)
我创建了一个commit-msg钩子:
#!/usr/bin/env ruby
message_file = ARGV[0]
message = File.read(message_file)
#starts with # then number, space, and at least 5 words no more than 200
$regex = /(^#[0-9]+ \W*(\w+(\W+|$)){5,200})/
if !$regex.match(message)
puts "Your message is not formatted correctly (example: #XXX at least 5 words)"
exit 1
end
Run Code Online (Sandbox Code Playgroud)
我借用了这篇博客文章 http://fhopf.blogspot.com/2011/01/git-hook-for-redmine-messages.html