0

[BUG33] [review Leader=...] などの形式でコミット メッセージにバグ ID を追加する必要があります ... すべてのコミッターがこの式に従う必要はありません。つまり、scm はコミット メッセージに自由に書き込むことができます。commit-msg フックが実装に役立つ可能性があることを検索しました。誰でも似たようなフックの例を教えてくれます

4

1 に答える 1

0

本のprogitには、サーバー側とクライアント側の両方で、これらの優れた例があります。ここにいくつかの例があります。そのリンクから取得し、コミットメッセージに適合させた1つの例は次のとおりです。

#!/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 に答える