| 123456789101112131415161718192021222324252627282930313233343536373839 |
- #!/bin/bash
- #
- # Move the "bump to <version>" commit to the HEAD of the branch
- #
- set -e
- function usage() {
- >&2 cat << EOM
- Move the "bump to <version>" commit to the HEAD of the branch
- This script requires that 'git config branch.${BRANCH}.release' is set to the
- release version for the release branch.
- EOM
- exit 1
- }
- BRANCH="$(git rev-parse --abbrev-ref HEAD)"
- VERSION="$(git config "branch.${BRANCH}.release")" || usage
- COMMIT_MSG="Bump $VERSION"
- sha=$(git log --grep $COMMIT_MSG --format="%H")
- if [ -z "$sha" ]; then
- >&2 echo "No commit with message \"$COMMIT_MSG\""
- exit 2
- fi
- if [[ "$sha" == "$(git rev-parse HEAD)" ]]; then
- >&2 echo "Bump commit already at HEAD"
- exit 0
- fi
- commits=$(git log --format="%H" HEAD..$sha | wc -l)
- git rebase --onto $sha~1 HEAD~$commits $BRANCH
- git cherry-pick $sha
|