GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

erikbern

git-of-theseus – Gitリポジトリが時間の経過とともにどのように成長するかを分析する

投稿日:

Gitリポジトリが時間の経過とともにどのように成長するかを分析する https://erikbern.com/2016/12/05/the-h…

Git reposを分析するスクリプト このようなクールなグラフを作成します( git自体で実行します)。

インストール

pip install git-of-theseus実行pip install git-of-theseus

ランニング

まず、 git-of-theseus-analyze <path to repo>を実行する必要があります(複数のconfigについてはgit-of-theseus-analyze --helpを参照してください)。 これはリポジトリを分析し、かなり時間がかかることがあります。

その後、プロットを生成することができます。 あなたがそれを行うにはいくつかの方法があります:

  1. git-of-theseus-stack-plot cohorts.jsonを実行して、 stack_plot.png書き込みstack_plot.png
  2. git-of-theseus-survival-plot survival.jsonを実行して、 survival_plot.png書き込みます(いくつかのオプションで--helpを付けて実行してください)

複数のリポジトリをプロットする場合は、プロジェクトごとに個別にgit-of-theseus-analyzeを実行し、– --outdirフラグを使用して別々のディレクトリにデータを格納する必要があります。 次に、 git-of-theseus-survival-plot <foo/survival.json> <bar/survival.json>を実行することができます(指数関数的減衰に合うように--exp-fitフラグを指定します)

助けて

AttributeError: Unknown property labels – これを見ているなら、upgrade matplotlib。 pip install matplotlib --upgrade

いくつかの写真

興味深いレポのセットでのコード行の生存:

この曲線はgit-of-theseus-survival-plotスクリプトによって生成され、 x年後にまだ存在するコミットの行割合を示します。 どの時点で作成されたかにかかわらず、すべてのコミットでそれを集約します。 したがって、 x = 0の場合はすべてのコミットが含まれますが、 x> 0の場合はすべてのコミットがカウントされません(いくつかの未来を調べなければならないため)。 生存曲線はKaplan-Meierを用いて推定される。

指数関数近似を追加することもできます:

Linux – スタックプロット:

この曲線はgit-of-theseus-stack-plotスクリプトによって生成され、コードが追加された年までにコホートに分解されたレポの行の総数を示します。

ノードスタックプロット:

Rails – スタックプロット:

他のものをプロットする

git-of-theseus-analyzeは、 exts.jsoncohorts.json 、およびauthors.jsonます。 git-of-theseus-stack-plot authors.jsonを実行すると、著者統計をプロットすることも、 git-of-theseus-stack-plot exts.jsonを使用してファイル拡張統計をプロットすることもできます。 著者の統計情報の場合、作成者を重複排除するための.mailmapファイルを作成することができます。 たとえば、 Kubernetesの著者統計は次のとおりです

それを100%に正規化することもできます。 Gitの作者統計は次のとおりです。

他のもの

Markovtsev Vadimは、TheseusのGitよりも20〜6倍速いと主張する非常に似た分析を実装しました。 これはHerculesという名前で、Gitの歴史を分析するための複雑なすべてのブログ記事があります。







-erikbern
-, , ,

執筆者: