こもろぐ @tenkoma

What We Find Changes Who We Become -- Peter Morville著『アンビエント・ファインダビリティ 』

PhpStorm でコードを理解する (経緯をたどる編)

PhpStorm でコードを理解する (コードを読む・構造を知る編)の続き。

経緯をたどる

コードを理解するために、コードが変更された経緯を理解するのが有効なこともある。そんなときに使える機能をまとめる。

Git連携

Git連携のLog機能・History機能(ファイル・ディレクトリの変更履歴)も便利だが、経緯をたどるために便利なのがAnnotate機能。

Annotate機能(git blameと同等)

  • ショートカットキー未設定・エディタの右端の行番号を右クリックして「Annotate」を選択

コード行ごとに最終変更日時・変更者が確認できる機能。「バグを埋めだ犯人捜し」に使うわけじゃないよ!

f:id:tenkoma:20190321175735p:plain
Git Annotate機能

日付・変更者名をクリックすると、同じコミットで変更したファイル一覧が表示できる

f:id:tenkoma:20190321180600p:plain
Annotate → Paths Affected in Revision

Annotateで表示される各行は右クリックするとコミット・リビジョンに関連付いたいくつかの操作ができるようになっている。

f:id:tenkoma:20190321185323p:plain
Annotate 右クリック

  • Show Diff: その行が最後に変更されたときのファイル変更(Diff)を表示
  • Annotate Revision: その行が最後の変更されたときのファイルを表示
  • Annotate Previous Revision: その行が最後の変更される直前のファイルを表示

GitHub連携

「Find in Pull Request」プラグイン

GitHub.com / GitHub Enterprise を上流リポジトリで使い、プルリクエストを使った開発をしているなら、コード変更の経緯を知るのにこのプラグインが便利。

エディタ行で右クリックして「Find Pull Request」を選択

f:id:tenkoma:20190321183119p:plain
Find Pull Request機能

getAlias() が変更されたプルリクエストのfiles 3.4 Remove more deprecated function calls by antograssiot · Pull Request #10009 · cakephp/cakephpにジャンプした。

目次

次はコードを実行する編