diff --git a/retag.sh b/retag.sh new file mode 100755 index 0000000..b876e03 --- /dev/null +++ b/retag.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +set -e + +first_commit=`git rev-list --max-parents=0 master` + +revs=`git rev-list --reverse ${first_commit}..master` + +git tag | xargs git tag -d + +for rev in $revs; do + message=`git log --pretty=tformat:%s -1 $rev` + chapter=`echo $message | sed -e "/^Chapter \(.*\):.*$/!d;s//ch\1/"` + if [[ -n $chapter ]]; then + git tag $chapter $rev + fi +done +