プロジェクトには何人が参加しましたか?リビジョン管理システムに基づく

StackOverflow https://stackoverflow.com/questions/1813649

質問

リビジョン管理システムを使用するプロジェクトに何人の開発者が関与したかをどのようにして知ることができますか?私の友人は、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の統計プラグインがあります:

https://launchpad.net/bzr-stats/

私は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 上記のコマンドに応じて。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top