Bash程序  |  29行  |  611 B

#!/bin/sh
#
# Dumb script for making a ChangeLog.
#
# Invoke like:
#
# scripts/git2changelog.sh --after="2010-02-01" --until="2010-02-31"
#

set -e

tmp_changelog=$(mktemp /tmp/changelog.XXXXXX)

trap "[ -f '$tmp_changelog' ] && rm -f '$tmp_changelog'; [ -f '$changelog~' ] && mv '$changelog~' '$changelog'" 0 2 15

changelog="${0%/*}/../ChangeLog"

git log --format="%nCommit: %H%nDate:   %aD%n%n%s%n%b%nChanged Files:" \
	--name-only "$@" > "$tmp_changelog"

cat "$changelog" >> "$tmp_changelog"

mv "$changelog" "$changelog~"

# This may take a while...
mv "$tmp_changelog" "$changelog"

rm -f "$changelog~"