LoginSignup
14
5

More than 3 years have passed since last update.

git-of-theseusを使ってコードの移り変わりを可視化してみた

Posted at

書籍「Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち」のレガシーシステムの話題のなかで、git-of-theseus が紹介されており、面白そうだったので使ってみたメモです。

git-of-theseusとは

Gitのリポジトリを分析してくれるスクリプト(Python)で、下図のようにリポジトリ全体のコードを、追加された年ごとに分けてグラフとして出力してくれたりします。(※画像はリポジトリより引用)(他にも、コミットのAuthorの割合やファイルの拡張子の割合をグラフに含めたりできるようです。)

git-git.png

使ってみる

インストールは


pip install git-of-theseus

でOKです。(そもそも pip が入ってなかったので easy_install pip しました。)

インストールが完了すれば、あとは分析したいリポジトリに移動して

$ git-of-theseus-analyze ./

を実行します。

リポジトリのコミット数などによっては分析にだいぶ時間がかかる場合もありますが、完了すると authors.json cohorts.json exts.json survival.json というJSONファイルが生成されます。

あとは、生成されたJSONに対して

$ git-of-theseus-stack-plot cohorts.json

といった形で実行すると、グラフの画像ファイル( stack_plot.png )が生成される流れになっています。

使ってみた

実際に2年物の某リポジトリに対してgit-of-theseusを使ってみました。
stack_plot.png

このリポジトリでは、2020年の6月頃にリファクタリングを行ったのですが、それの結果がグラフとして現れており(2020-06の付近で減りが多め)、それが視覚的にわかるのが面白いなと思いました。

その他にも、「初期の頃にガッと実装したなぁ」「2019年6月にガッと増えてるけど、あの機能追加したんだなぁ」など、思い出に浸れるのも良いポイントでした。

終わりに

git-of-theseusの簡単な説明と使ってみた雑な感想を記載しました。
コードの移り変わりを可視化することで、視覚的にリポジトリの状態を把握できるので、振り返りに便利だなと感じました。

参考

14
5
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
14
5