プロジェクトには何人が参加しましたか?リビジョン管理システムに基づく
質問
リビジョン管理システムを使用するプロジェクトに何人の開発者が関与したかをどのようにして知ることができますか?私の友人は、git log で答えを検索するこの方法を見つけました。
git log | grep Author: | sort -u | cut –delimiter=” ” -f2 | sort -u | wc -l
gitに簡単な方法はありますか?Subversion、Bazaar、Mercurial などの他のリビジョン管理システムについてはどうですか?
解決
git
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
他のヒント
水銀の場合、正確にそれを行うための拡張機能があります: hg churn
。
hg churn
は行変更でソートします。変更セットのカウントが必要な場合は、 hg churn -c
を使用します。
サブバージョンの場合
svn log -q svn://path/to/repo | cut -f 3 -d " " | sort -u
プロジェクトの貢献者に関するさまざまな情報を取得するためのBazaarの統計プラグインがあります:
私は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
Mercurial には強力なテンプレート言語が組み込まれています (「 hg help templates
)。したがって、チャーン拡張機能を有効にしなくても、プロジェクト内のすべての人のリストを取得できます。
hg log --template '{author}\n' | sort -u
他の人が電子メール アドレスを変更した場合 (名前はそのまま)、次の手順を実行できます。 author
テンプレートキーワードを少し:
hg log --template '{author|person}\n' | sort -u
それから加えて wc -l
上記のコマンドに応じて。