リビジョン管理システムを使用しているプロジェクトに何人の開発者が関与したかをどうやって知ることができますか? 私の友人は、git log で答えを調べるためにこの方法を見つけました:
git log | grep Author: | sort -u | cut –delimiter=” ” -f2 | sort -u | wc -l
gitに簡単な方法はありますか? Subversion、Bazaar、Mercurial などの他のリビジョン管理システムはどうですか?
shortlog
コマンドは非常に便利です。git-log
これは、典型的な出力を要約したものです。
$ git shortlog -sn
119 tsaleh
113 Joe Ferris
70 Ryan McGeary
45 Tammer Saleh
45 Dan Croak
19 Matt Jankowski
...
に渡してwc
、一意のユーザー名の数を確認します。
$ git shortlog -sn | wc -l
40
Mercurial の場合、まさにそれを行うための拡張機能があります: hg churn
.
hg churn
行が変更された順に並べ替えます。変更セットの数が必要な場合は、を使用しますhg churn -c
。
転覆のために
svn log -q svn://path/to/repo | cut -f 3 -d " " | sort -u
プロジェクトの貢献者に関するさまざまな情報を取得するための Bazaar 用の統計プラグインがあります。
Mercurial には強力なテンプレート言語が組み込まれています (「参考文献」を参照hg help templates
)。したがって、解約拡張機能を有効にせずに、プロジェクト内のすべての人のリストを取得できます。
hg log --template '{author}\n' | sort -u
人々がメール アドレスを変更した場合 (名前はそのままにしておく場合)、author
テンプレート キーワードを少し処理できます。
hg log --template '{author|person}\n' | sort -u
wc -l
次に、上記のコマンドに必要に応じて追加します。
私は Mercurial の簡単な方法も知りませんし、すべてのドキュメントをよく検索しても何も明らかになりませんでした。それで、あなたの友人が見つけた Mercurial 用の *nix コマンドは次のとおりです。
hg log | grep user: | cut -c 14- | sort -u | uniq | wc -l
ところで、git のコマンドにエラーがあると思います。2 番目のコマンドはsort -u
uniq に置き換える必要があります。
より単純な git バージョンは次のとおりです。
git log --pretty=tformat:%an | sort -u | wc -l
または、一意のメールアドレスが必要な場合:
git log --pretty=tformat:%ae | sort -u | wc -l