user icon

Gitで短すぎるコミットログを禁止する

コミットコメントを意地でも書かせたい

http://d.hatena.ne.jp/kanu-orz/20100531/1275279046

上記を見て感化されたので、Gitで短すぎるコミットログのコミットを禁止するhookを書きました。

#!/usr/bin/env ruby

#place this file in .git/hooks/commit-msg

MIN_LENGTH = 10

log = File.readlines(ARGV[0]).grep(/^[^#].+/)
length = log.to_s.split(//u).size - 1

if length < MIN_LENGTH
  system('say Way way wait')
  puts <<-EOS

##################################################################
このコミットは許しません!

1行目   [変更した理由、目的を簡潔に]
2行目以降 [必要ならば詳細を]

最低でも何故変更したのかのを、
未来の自分と保守担当者に向かって書きましょう。

コミットログは未来の自分へのメッセージです。
今は不要に思っても、未来にはきっと役に立ちます。

#{length}文字しかありません。
有効なメッセージを#{MIN_LENGTH}文字以上
##################################################################
  EOS
  exit 1
end

せっかくMacなのでsayコマンド使ってAlexさんにしゃべらせてます。
ちなみにコミットログはcommit-msgスクリプトの第一引数に.git/COMMIT_EDITMSGというファイル名が渡ってきますので、それを覗いてやれば参照できます。

Facebooktwitterlinkedintumblrmail

タグ:

コメントは受け付けていません。