発端:rspecがいつまでも動かない
今年の秋から参加したRails 4.2で開発しているプロジェクトで、なぜかrspecを走らせてもいつまでもスタート現象が起きました。だいたいこの手の原因はspring
と分かっていたので、その都度kill & spring stop
してやり過ごしていました。
git checkout
後が怪しい
何度も上記現象に会う中、原因が分からずに居たのですが、どうやらgitでブランチを切り替えたときに発生することがわかってきました。調べてみると、プロジェクトにSpring hangs a lotという同様の症状に関するissueが上がっていました。
対策:post-checkout hookを使う
原因が分かれば打ち手を考えることができます。今回は簡単で、git hookを使ってcheckout時に毎回springを止めればOKです。ワーキングコピーにある.git/hooks
の下にpost-checkout
というファイルを作り、以下のように書きます。
#!/bin/bash
bin/spring stop
これでspringを手動で止めなくても良くなりました。