gitline-count

GIT contribution per author (lines)


I'm trying to print the per-line contribution of each author to a Git repository.

For that, I use the following command, adapted from How to count total lines changed by a specific author in a Git repository?

git ls-tree -r -z --name-only HEAD -- */*.c | xargs -0 -n1 git blame \
--line-porcelain HEAD |grep  "^author "|sort|uniq -c|sort -nr

However, I get the following error:

fatal: cannot stat path 'HEAD': No such file or directory.

What am I doing wrong?


Solution

  • Okay, after more investigation I found this on SO.

    git ls-files -z | xargs -0n1 git blame -w | perl -n -e '/^.*?\((.*?)\s+[\d]{4}/; print $1,"\n"' | sort -f | uniq -c | sort -n  
    

    The answer came with support from Eric Z

    RESULT

        234926 USER 1
         32453 USER 2
       2941234 USER 3