Skip to content

Instantly share code, notes, and snippets.

@ksm
Created August 24, 2018 16:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ksm/ae31e21b00574594da4ea5e342cb4efd to your computer and use it in GitHub Desktop.
Save ksm/ae31e21b00574594da4ea5e342cb4efd to your computer and use it in GitHub Desktop.
#!/bin/bash
#
# Written by Corey Haines
# Scriptified by Gary Bernhardt
#
# Put this anywhere on your $PATH (~/bin is recommended). Then git will see it
# and you'll be able to do `git churn`.
#
# Show churn for whole repo:
# $ git churn
#
# Show churn for specific directories:
# $ git churn app lib
#
# Show churn for a time range:
# $ git churn --since='1 month ago'
#
# (These are all standard arguments to `git log`.)
set -e
git log --all -M -C --name-only --format='format:' "$@" | sort | grep -v '^$' | uniq -c | sort | awk 'BEGIN {print "count\tfile"} {print $1 "\t" $2}' | sort -g
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment