| 123456789101112131415161718192021222324252627282930313233343536373839 |
- #!/usr/bin/zsh
- wordiness=$1
- author=""
- survived=0
- survived_lines=0
- function diffone {
- this_author=`git show -s --pretty=short $1 | tail -n +2 | head -n 1 | grep -oE ": .* <" | sed 's/: //' | sed 's/ <//' | tr ' ' '_'`
- if [[ "$author" != "$this_author" ]]; then
- return
- fi
- this_survived=`git show --minimal --oneline $1 -- ./main.tex | tail -n +6 | wdiff -d -1 -3 -i | grep -v -E "^=+$" | sed 's/[^\\]%.*//' | grep -v -E "^ *%.*" | grep -v -E "^ *$" | grep -v -E "^@" | grep -E "([^ ]+ ){$wordiness}.*[^ ]+" | wdiff -1 -2 -i ./main.tex - | grep -v -E "^=+$" | sed 's/[^\\]%.*//' | grep -v -E "^%.*" | grep -v -E "^ *$" | grep -v -E "^@" | grep -E "([^ ]+ ){$wordiness}.*[^ ]+" | wc -w`
- this_survived_lines=`git show --minimal --oneline $1 -- ./main.tex | tail -n +6 | wdiff -d -1 -3 -i | grep -v -E "^=+$" | sed 's/[^\\]%.*//' | grep -v -E "^ *%.*" | grep -v -E "^ *$" | grep -v -E "^@" | grep -E "([^ ]+){$wordiness}.*[^ ]+ [^ ]+ [^ ]+" | wdiff -1 -2 -i ./main.tex - | grep -v -E "^=+$" | sed 's/[^\\]%.*//' | grep -v -E "^%.*" | grep -v -E "^ *$" | grep -v -E "^@" | grep -E "([^ ]+ ){$wordiness}.*[^ ]+ [^ ]+ [^ ]+" | wc -l`
- survived=$((survived+this_survived))
- survived_lines=$((survived_lines+this_survived_lines))
- }
- head=`git show -s --oneline HEAD | head -n 1 | sed 's/ .*//'`
- function oneauthor {
- author=$1
- survived=0
- survived_lines=0
- for h in `git log --all --oneline | sed 's/ .*//'`; do
- # if [[ "$head" != "$h" ]]; then
- diffone $h
- # fi
- done
- echo -e "$2\t$survived\t$survived_lines"
- }
- echo "== Survived lines per author =="
- for a in `git log | grep -E "^Author:" | grep -oE ": .* <" | sed 's/: //' | sed 's/ <//' | sort -u | tr ' ' '_'`; do
- aname=`printf "%25s\t\n" $a`
- aname=${aname/_/ }
- oneauthor $a "$aname"
- done
|