git commit hooksで diff つきの mailを飛ばす方法

gitでコミットがあったときにコメントdiffつきお知らせメールを受けとりたくて自前でScriptとかで頑張ってみていたのですが、よくよく調べてみるとちゃんとScriptがついていてそれを使って、あとは中のコード読んで設定したりググったりしてみると無駄な労力なくdiffつきでメールが飛んでくるようです。

Hogeリポジトリを作成して実例して再現すると

リポジトリ作成

mkdir -p ~/local/git/Hoge.git
cd ~/local/git/Hoge.git
git --bare init

post-receiveの設置

cd ~/local/git/Hoge.git/hooks
cp post-receive.sample post-receive

post-receiveの編集

- #. /usr/share/doc/git-core/contrib/hooks/post-receive-email
+ /usr/share/doc/git-core/contrib/hooks/post-receive-email

~/local/git/Hoge.git/descriptionの設定

Hoge

git configの設定

git config --global hooks.mailinglist "your@gmail.com"
git config --global hooks.emailprefix "[git commit]"
git config --global hooks.envelopesender "your@gmail.com"
git config --global hooks.showrev "git show -C %s; echo"


ここまで設定したらあとは実際にcommitしてあげればdiffつきのメールが
飛んできます。