Single repository:
git log --pretty=format:%cs | cut -b 1-7|sort | uniq -c | add-missing-months | awk '{print $1}' | spark
Multiple repositories:
for d in */; do cd $d; basename $(pwd); git log --pretty=format:%cs | cut -b 1-7|sort | uniq -c | add-missing-months | awk '{print $1}' | spark; cd ../; done
1 2 3 4 5 6 7 8 9 10 11 12 | #!/bin/sh awk -v start=2016-01 -v now="$(date +%Y-%m)" '{ c[$2] = $1 } END { split(start, a, "-"); split(now, b, "-") y = a[1] + 0; m = a[2] + 0; ey = b[1] + 0; em = b[2] + 0 while (y < ey || (y == ey && m <= em)) { k = sprintf("%04d-%02d", y, m) printf "%7d %s\n", c[k] + 0, k if (++m > 12) { m = 1; y++ } } }' |
git-repo1 ▁▁▁▁▁▁▁▁▁▁▁▁▃▁▁▆█▆▆▂▃▁▂▂▂▄▄▂▄▁▁▁▁▁▁▅█▁▃▂▂▁▂▁▃▂▄▁▁▃▂▂▂▁▁▂█▁▁ git-repo2 ▄▁▁▁▁▁▁▁▁▁▁▁▁▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▄▆▂▁▁▃▁▁▁▁▁▁▁▁▁▃▁▁▁▁▁▁▁▁▁▁▁▁ git-repo3 ▁▁▂▂▃▃▃█▇▁▁▂▅▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ git-repo4 ▄▂▂▁▁▁▁▁▂▄▂▄▃▃▄▅▃▄▂▄▂▆▄▄▄▂▄▂▂▂▁▂▂▂▃▂▂▁▄▂▃▂▂▂▂▁▂▂▁▁▁▂▂▆▆▃▃▁▂