48 lines
1.1 KiB
Bash
Executable File
48 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
tmp=.git/summary-$$
|
|
trap 'rm -f $tmp-*' 0
|
|
|
|
since="$1"
|
|
until="$2"
|
|
|
|
case 0 in
|
|
1)
|
|
bottom=$(git rev-parse master@{"$1"})
|
|
top=$(git rev-parse master@{"$2"})
|
|
;;
|
|
0)
|
|
git rev-list --first-parent --since="$since" --until="$until" \
|
|
master >"$tmp-1" &&
|
|
bottom=$(tail -n 1 "$tmp-1") &&
|
|
top=$(head -n 1 "$tmp-1") &&
|
|
rm -f "$tmp-1"
|
|
;;
|
|
esac
|
|
|
|
num_patches=$(git rev-list --no-merges $bottom..$top | wc -l)
|
|
git shortlog -s -n --no-merges $bottom..$top >"$tmp-0.txt"
|
|
num_contrib=$(wc -l <"$tmp-0.txt")
|
|
|
|
summary=$(git diff --stat -M $bottom..$top | tail -n 1)
|
|
num_files=$(expr "$summary" : ' *\([1-9][0-9]*\) files changed')
|
|
num_added=$(expr "$summary" : '.*changed, \([1-9][0-9]*\) insertions')
|
|
num_deleted=$(expr "$summary" : '.*, \([1-9][0-9]*\) deletions')
|
|
|
|
cat <<EOF
|
|
During the period of $since .. $until:
|
|
|
|
Number of contributors : $num_contrib
|
|
Number of change sets : $num_patches
|
|
Number of changed files : $num_files
|
|
Number of added lines : $num_added
|
|
Number of deleted lines : $num_deleted
|
|
|
|
Changes during this period are as follows:
|
|
|
|
EOF
|
|
|
|
git --no-pager shortlog -w72,2,4 --no-merges $bottom..$top
|
|
|
|
git --no-pager diff --dirstat $bottom..$top
|