0

人们应该以某种格式在提交消息中添加错误 ID,例如 [BUG33] [review leader=...] ...并不是每个提交者都必须遵循这个公式,我的意思是 scm 可以在提交消息中自由写入。我已经搜索过 commit-msg 钩子可能有助于实现它。任何人都可以给我一些类似的钩子示例

4

1 回答 1

0

这本书 progit 有一个很好的例子,包括服务器端和客户端。您可以在此处找到一些示例。取自该链接并适应您的提交消息的一个示例是:

#!/usr/bin/env ruby

$refname = ARGV[0]
$oldrev  = ARGV[1]
$newrev  = ARGV[2]
$user    = ENV['USER']

puts "Enforcing Policies... \n(#{$refname}) (#{$oldrev[0,6]}) (#{$newrev[0,6]})"
$regex = /\[BUG: (\d+)\]/

# enforced custom commit message format
def check_message_format
  missed_revs = `git rev-list #{$oldrev}..#{$newrev}`.split("\n")
  missed_revs.each do |rev|
    message = `git cat-file commit #{rev} | sed '1,/^$/d'`
    if !$regex.match(message)
      puts "[POLICY] Your message is not formatted correctly"
      exit 1
    end
  end
end
check_message_format

这应该拒绝其消息未使用字符串“BUG:”后跟数字(可能来自您的问题跟踪系统)格式化的任何提交。

于 2012-07-03T15:52:27.030 回答