hitode909の日記

趣味はマリンスポーツですの日記です

App::PRTで大規模なプロジェクトをリファクタリングするときはgit grep --name-onlyで絞り込むと早い

App::PRTはPerl Refactoring Toolで、クラスのリネームや、ネームスペースのリネームなど、便利なコマンドが集まっている。
単純にrename_classやrename_name_spaceすると、リポジトリ内の全ファイルを1ファイルずつ順番にPPIでパースして見ていくので、大きなプロジェクトで実行すると時間がかかることがある。
以下のように、git grep --name-only で対象ファイルを絞り込むと、そこそこの時間で終わる。

prt rename_name_space Foo Bar $(git grep --name-only Foo)