5

リビジョン管理システムを使用しているプロジェクトに何人の開発者が関与したかをどうやって知ることができますか? 私の友人は、git log で答えを調べるためにこの方法を見つけました:

git log | grep Author: | sort -u | cut –delimiter=” ” -f2 | sort -u | wc -l

gitに簡単な方法はありますか? Subversion、Bazaar、Mercurial などの他のリビジョン管理システムはどうですか?

4

7 に答える 7

17

ギット

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
于 2009-11-28T21:18:52.103 に答える
9

Mercurial の場合、まさにそれを行うための拡張機能があります: hg churn.

hg churn行が変更された順に並べ替えます。変更セットの数が必要な場合は、を使用しますhg churn -c

于 2009-11-29T00:58:15.627 に答える
4

転覆のために

svn log -q svn://path/to/repo | cut -f 3 -d " "  | sort -u
于 2009-11-28T21:01:51.640 に答える
2

プロジェクトの貢献者に関するさまざまな情報を取得するための Bazaar 用の統計プラグインがあります。

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

于 2009-11-29T00:10:18.050 に答える
1

Mercurial には強力なテンプレート言語が組み込まれています (「参考文献」を参照hg help templates)。したがって、解約拡張機能を有効にせずに、プロジェクト内のすべての人のリストを取得できます。

hg log --template '{author}\n' | sort -u

人々がメール アドレスを変更した場合 (名前はそのままにしておく場合)、authorテンプレート キーワードを少し処理できます。

hg log --template '{author|person}\n' | sort -u

wc -l次に、上記のコマンドに必要に応じて追加します。

于 2009-12-05T10:55:52.370 に答える
1

私は Mercurial の簡単な方法も知りませんし、すべてのドキュメントをよく検索しても何も明らかになりませんでした。それで、あなたの友人が見つけた Mercurial 用の *nix コマンドは次のとおりです。

hg log | grep user: | cut -c 14- | sort -u | uniq | wc -l

ところで、git のコマンドにエラーがあると思います。2 番目のコマンドはsort -uuniq に置き換える必要があります。

于 2009-11-28T20:34:56.060 に答える
0

より単純な git バージョンは次のとおりです。

git log --pretty=tformat:%an | sort -u | wc -l

または、一意のメールアドレスが必要な場合:

git log --pretty=tformat:%ae | sort -u | wc -l
于 2009-11-28T20:55:44.773 に答える