LoginSignup
1
3

More than 5 years have passed since last update.

デバッグ用のコードが残っているとGitでコミットできないようにする(Python編)

Posted at

デバッグ用のコードが残っているとGitでコミットできないようにする - Masteries
の記事の返歌です。

こちらの記事では、git commit の際(pre-commit)に、変数の中身を人間が見やすい形で出力する Data::Printeruseしているのかどうか The Silver Searcheragコマンドを使ってPerlスクリプトを検索し、残っていればcommitできないようにしています。

この発想を借りて、PythonではPerlのDDPに相当するのが pprint なので、これを検索文字列として以下のようにすれば同様のことができそうです。

pre-commit
#!/bin/sh

word='pprint'

if ag --python $word $(git rev-parse --show-toplevel); then
    echo "some file contains code for debugging: $word"
    exit 1;
fi

個人的には「pprintが残っているかどうか」だけじゃなく、「pprintが残っているかどうか、残っていればどこに残っているのか」まで出力して欲しいなと思ったため、元記事にある > /dev/null の部分を削除しています。これでcommit時にagコマンドでの検索結果をそのまま出力してくれるので、こちらの方が便利そうです。

また、agを導入している場合は上記のpre-commitファイルで問題ないですが、導入していない場合はgrepを使った下記のスクリプトでも良さそうです。(ただし、.pyという拡張子が付いているファイルが検索対象となるので、agと多少挙動が変わります。)

pre-commit
#!/bin/sh

word='pprint'

if grep -r $word $(git rev-parse --show-toplevel) --include='*.py'; then
    echo "some file contains code for debugging: $word"
    exit 1;
fi

※ そもそもデバッグ時に pprint を使っていないよ、という人がいると思います。そういった人はこの発想を元に デバッグに使っているコードを検索対象とする ようにすれば良さそうですね。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3