#!/bin/bash if [[ $# -ne 3 || "$1" == "--help" || "$1" = "-h" ]]; then name=$(basename $0) cat <<-USAGE Usage: $name workbranch base/branch version * workbranch will be created locally from base/branch. If it exists, it will be reused, so make sure you don't overwrite any work. * base/branch may be specified as user:branch to allow easy copying from Github PRs. USAGE exit 0 fi work="$1" shift base=$(echo "$1" | sed "s/:/\//") shift version=$1 shift set -e git fetch upstreams git checkout -B "${work}" --no-track "${base}" push=$(git rev-parse --abbrev-ref --symbolic-full-name '@{push}' \ 2>/dev/null) || true if [[ "${push}" != "" ]]; then echo "Warning: ${push} may already exist." fi build=$(find -name BuildInfo.cpp) sed 's/\(^.*versionString =\).*$/\1 "'${version}'"/' ${build} >version.cpp && diff "${build}" version.cpp && exit 1 || mv -vi version.cpp ${build} git diff git add ${build} git commit -S -m "Set version to ${version}" git log --oneline --first-parent ${base}^.. cat <