Accurate word count changes in git, useful for tracking changes on a paper in overleaf · GitHub
ID: 1b19a824-8f72-4256-9de9-3341ca3b5520 ROAM_REFS: https://gist.github.com/MilesCranmer/5c7d86c8740219355d2dfdb184910711 MTIME: [2025-01-25 Sat 19:48]
total=0 for sha in $(git rev-list --since="6am" master | sed -e '$ d'); do added=$(git diff --word-diff=porcelain $sha~1..$sha|grep -e"^+[^+]"|wc -w|xargs) deleted=$(git diff --word-diff=porcelain $sha~1..$sha|grep -e"^-[^-]"|wc -w|xargs) duplicated=$(git diff $sha~1..$sha|grep -e"^+[^+]" -e"^-[^-]"|sed -e's/.//'|sort|uniq -d|wc -w|xargs) if [ "$added" -eq "0" ]; then changed=$deleted total=$((total+deleted)) echo "added:" $added, "deleted:" $deleted, "duplicated:"\ $duplicated, "changed:" $changed elif [ "$(echo "$duplicated/$added > 0.8" | bc -l)" -eq "1" ]; then echo "added:" $added, "deleted:" $deleted, "duplicated:"\ $duplicated, "changes counted:" 0 else changed=$((added+deleted)) total=$((total+changed)) echo "added:" $added, "deleted:" $deleted, "duplicated:"\ $duplicated, "changes counted:" $changed fi done echo "Total changed:", $total
Counts words changed per commit. Very cool!