私はGITリポジトリを持っており、一定期間の間に1人または複数の人によって追加または変更されたコードの行数を計算したい。 gitで計算することは可能ですか?Git:追加された/変更されたコード行に関して、プロジェクトへの人の貢献度を見積もる方法は?
答えて
あなたはgit log
といくつかのシェル-FUを使用することができますもあります:
git log --shortstat --author "Aviv Ben-Yosef" --since "2 weeks ago" --until "1 week ago" \
| grep "files\? changed" \
| awk '{files+=$1; inserted+=$4; deleted+=$6} END \
{print "files changed", files, "lines inserted:", inserted, "lines deleted:", deleted}'
説明:それぞれについてgit log --shortstat
ディスプレイ短い統計がコミット、とりわけ、数を示し、変更されたファイル、挿入された行、削除された行特定のコミッター(--author "Your Name"
)と時間範囲(--since "2 weeks ago" --until "1 week ago"
)のためにフィルターをかけることができます。
コミットごとのエントリを見るのではなく、実際に統計を集計するために、シェルスクリプトを使ってそれを行います。まず、grep
を使用して、差分を含む行のみをフィルタリングします。
8 files changed, 169 insertions(+), 81 deletions(-)
またはこの:これらの行は次のようになり
1 file changed, 4 insertions(+), 4 deletions(-)
私たちは、その後、awk
を使用して、これらを合計:各ラインのために私たちは、ファイルは、(1ワード目)を変更、挿入行(第四の単語)と追加します削除された行(6番目の単語)を削除し、すべてを合計した後に印刷します。
編集:スニペットの先頭にスラッシュが追加されているため、コピーしてコマンドラインに貼り付けることができます。特定の日付の
間に= --authorと--sinceと--until –
ありがとう!私はこれをちょっと微調整してシェル機能を作りました。 https://gist.github.com/pstadler/4722416 – pstadler
これは、挿入がある限り有効です。削除のみがある場合、挿入としてカウントされます。なぜなら、「8ファイルが変更され、81削除が削除される」という4番目の単語が挿入ではなく削除されるからです。 –
Gitstatsを使用して統計情報を生成できます。それには、上位20人の著者が追加/削除した行の数(コミット数で上位20行)を含む「Authors」セクションがあります。
、あなたは "2012年9月1日"
と同様にgitのログ--shortstat --author --until "2012年8月27日" --since使用することができます"ファビアン" - "2012-08-27"から--until "2012-09-01" | grep "ファイルが変更されました" awk '{ファイル+ = $ 1; + = $ 4を挿入しました。 + = $ 6} END {プリント "変更されたファイル"、ファイル、 "挿入行:" 削除、 挿入し、 "削除された行を:"、}削除」
チェックこの説明
Atlassian's Fisheye/CrucibleをGit(他のコードreposと同様)と統合できます。 LOCを含む全員の貢献は、簡単に読めるウェブアプリに一般公開されています。小グループの方もかなり安いです。
情報を公開し、それ自体について発言させてください。
を実行し、このコマンド:
git log --pretty=format:'' --numstat --author 'Lu4' | awk 'NF' | awk '{insertions+=$1; deletions+=$2} END {print NR, "files changed,", insertions, "insertions(+),", deletions, "deletions(+)"}';
このコマンドは、abyx's answerで巧妙なものに非常に近いですが、それはまた、Wallace Sidhréeで見つかったエッジケースを処理します。時には、コミットには削除のみが含まれます(つまり、挿入されません)。 abyx's answerのコマンドは、これらの削除を挿入と誤って読み取ります。ここでのコマンドは、--shortstat
の代わりに--numstat
を使用するため、正しく読み取ります。 --shortstat
とは異なり、--numstat
には、それらのコミットの挿入と削除の両方が含まれています。
両方のコマンドにはファイル数にバイナリファイルが含まれていますが、それらのバイナリ内に挿入され削除された行数は除外されています。
これは別の便利なトリックです。このコンテンツをgitstats
というファイルを作成します。
#!/usr/bin/env bash
git log --pretty=format:'' --numstat "[email protected]" | awk 'NF' | awk '{insertions+=$1; deletions+=$2} END {print NR, "files changed,", insertions, "insertions(+),", deletions, "deletions(+)"}';
が次にあなたが欲しいgit log
に余分なオプションを指定して、そのコマンドを実行することができます。ここではいくつかの例は以下のとおりです。
./gitstats;
./gitstats --since '1 month ago';
./gitstats --since '1 month ago' --until '1 day ago';
./gitstats --author 'Lu4' --since '1 month ago' --until '1 day ago';
(ファイルはもちろん、gitstats
以外の名前を付けることができます。)
- 1. Pythonに貢献する:git /クローンコードまたはインストールされたコードを編集しますか?
- 2. Git/GitHubアカウントに貢献した行の総数
- 3. マイナーな変更で他の人の貢献をマージする
- 4. バイオインフォマティクスオープンソースツールへの貢献
- 5. ユーザー貢献度システム
- 6. Eclipseのメニューへの貢献
- 7. 私はLinuxカーネルに貢献したい
- 8. gitのステージングされた変更とunstagedされた変更を迅速に元に戻す方法は?
- 9. データセットに追加された行を変更する
- 10. 更新していないGem-Gemへの貢献
- 11. Subversionで追加されたファイルの変更/変更されていません
- 12. Gitは新しいファイルのみを追加します。変更されたファイルは追加しません
- 13. 削除されたフレームワークをもう一度追加する方法
- 14. テーブルが変更データキャプチャ(CDC)から削除された、または追加されたことを知る方法?
- 15. リッチテキストボックスで新しく追加されたテキストの色を変更する方法
- 16. WPF/Silverlight:変更されたコントロールテンプレートにコマンドを追加する方法は?
- 17. あなたはどんなプロジェクトに貢献したいですか?
- 18. は、私は、次の2つの条件が満たされた場合にのみ、コンテキストメニューを貢献したいときに、ファイルと親プロジェクト満たす条件
- 19. 指定されたコミットで変更された行のファイルを見つける
- 20. フォルダがバイナリファイルとしてGitリポジトリに追加されました
- 21. SVNで新しく追加された行を見つける
- 22. コードでネストされたポートレット(liferay)を追加する方法
- 23. React-Bootstrap onClickトリガーは、チェックボックスに蓄積され、何度も実行されます。
- 24. EF4オブジェクトの状態は、プロパティを変更しても、新しく追加された行は変更されません。
- 25. Git:ファイルは「変更されましたが更新されていません」
- 26. gitは変更されていないファイルを変更したものとしてマークします
- 27. GitHubリポジトリにコード行が追加されたときを知る
- 28. gitネストされたプロジェクト
- 29. テーブル内のフォームフィールドを動的に追加しても、行の高さは変更されません
- 30. クロムエクステンション - 追加されたコードのイベントリスナー
HTTPを参照してください、ところで「パフォーマンス」を推定するためにこれを使用しないでください://ブログ.msdn.com/b/oldnewthing/archive/2010/11/16/10091537.aspx – ismail
ご意見ありがとうございます。私はこのタイプの測定で人の給与を測定するつもりはありませんでした。これは人の仕事の全体像を持つために行われ、誰も私が1つのことをしていることを知ることはありません – Lu4
これは線のサイズではなく、使い方です。 – ingyhere