2016-10-03 77 views
1

讓我說我想要統計已經提交了多少個if語句,然後按照作者進行分組,我該怎麼做?什麼我想要做搜索git的歷史記錄和作者羣

例子:

git count-by-author "if (" 

245 Author A 
199 Author B 
    20 Author C 

我感興趣的主要是引進的if的號碼,而不是修改if聲明,如果這是可能的。

回答

1

沒有純粹git的解決方案,但你可以用下面的bash腳本來獲得這樣的統計:

for sha in $(git log --format=%H); do 
    author="$(git show --format=%an $sha | head -n1)" 

    removed_if_statements=$(git show $sha | grep -E '^\-(.*)?if \(' | wc -l) 
    added_if_statements=$(git show $sha | grep -E '^\+(.*)?if \(' | wc -l) 

    delta=$(($added_if_statements - $removed_if_statements)) 

    if [ $delta -gt 0 ]; then 
    for x in $(seq 1 $delta); do 
     echo $author 
    done 
    fi 
done | sort | uniq -c | sort -rg 
+0

不錯!只需要添加-g到最後的'sort'就可以正確排序(例如,在1100之前排序了8) – oskbor

+0

您是對的,謝謝 – qzb

+0

此外,這行似乎需要zsh'for x in {1 .. $三角洲};做' – oskbor

相關問題