Git hooks を python でつかう

普通はシェルスクリプトでやるのだろうが、python で Git hooks をつかうことができる。 ここでは、例として特定のファイルの文字数をコミット後に数えるというのをやってみる。 .git/hooks/post-commit を以下のように作成した。

#!/usr/bin/env python3

import time

with open(’hoge.txt', 'r') as fi:
    s = fi.read()

with open('progress.txt', 'a') as fo:
    out = '{0:d} {1:d}\n'.format(round(time.time()), len(s))
    fo.write(out)

git commit すると、タイムスタンプと文字数が記録されていく。