phel-lang で `git log –stat` の結果を可視化するツールを作りました

phel-lang で git log --stat の結果を可視化するツールを作りました。

これは何か

実験的なものなので、何にどれだけ役立つ物になるという確信は全くありません。

git log --statの結果には、コミット毎にファイル名と変更行数が出力されます。これを、以下のルールに従って、D3を使ってグラフ表示するHTMLを出力するものです。

  • 変更したファイルをノードとして丸で表示します。
  • 変更行数に応じて丸の大きさが変わります。変更行数が多いファイル程大きい丸になります。
  • コミット回数によって丸の色が変わります。コミット回数が多いファイル程暑そうな色になります。
  • 同一のコミットで変更されたファイルは、線でリンクが付きます。
  • 同時にコミットされた回数によって、線の太さが変わります。回数が多い程太い線になります。

試し方

PHPにコンパイルされる関数型言語である phel-lang で作られているので、PHPと composer が動く環境があれば使えると思います。

インストール

適当なディレクトリを作成して、composerの初期化を行ないます。(質問に適当に答えると composer.jsonが作成されます)

$ mkdir saraudon-example
$ cd saraudon-example/
$ composer init

phel-saraudon をインストールします。

$ composer require --dev smeghead/phel-saraudon

これでインストールは完了です。

実行方法

別のディレクトリ(/usr/target-project)のgit リポジトリのgit log --statの結果を、phel-saraudonで解析して、HTMLファイルに出力します。

$ GIT_WORK_TREE=/usr/target-project GIT_DIR=/usr/target-project/.git git log --stat -n 50 | vendor/bin/phel run vendor/smeghead/phel-saraudon/src/main.phel -- src > output.html
  • /usr/target-project 対象のgitリポジトリのディレクトリです。
  • -n 50直近50件のコミットの情報を出力します。
  • -- src gitリポジトリのsrcディレクトリ配下のファイルだけを対象とします。
  • > output.html phelの標準出力をリダイレクトして、HTMLファイルに保存します。
  • phelの実行コマンドがだいぶ煩雑ですが、このバグが修正されたらもっと直感的に実行できるようになります。

サンプルの出力ファイルを開く

最初にも書きましたが、この可視化が何の役に立つのかまだわからないので、いろいろなリポジトリで試してみたいです。もし、試してみた方がいましたら、感想など教えてください。

 

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください