| Index: tools/merge-to-branch.sh
|
| diff --git a/tools/merge-to-branch.sh b/tools/merge-to-branch.sh
|
| index 260dc8a1493ecb63a96384c8bc520faf4845c1c6..0314cb4cb845ba5df4980c8d48f5365e2a1ebb29 100755
|
| --- a/tools/merge-to-branch.sh
|
| +++ b/tools/merge-to-branch.sh
|
| @@ -69,8 +69,9 @@ restore_patch_commit_hashes_if_unset() {
|
| }
|
|
|
| ########## Option parsing
|
| +REVERT_FROM_BLEEDING_EDGE=0
|
|
|
| -while getopts ":hs:fp:rm:" OPTION ; do
|
| +while getopts ":hs:fp:rm:R" OPTION ; do
|
| case $OPTION in
|
| h) usage
|
| exit 0
|
| @@ -85,6 +86,9 @@ while getopts ":hs:fp:rm:" OPTION ; do
|
| ;;
|
| s) START_STEP=$OPTARG
|
| ;;
|
| + R) REVERSE_PATCH="--reverse"
|
| + REVERT_FROM_BLEEDING_EDGE=1
|
| + ;;
|
| ?) echo "Illegal option: -$OPTARG"
|
| usage
|
| exit 1
|
| @@ -104,7 +108,8 @@ touch "$ALREADY_MERGING_SENTINEL_FILE"
|
| initial_environment_checks
|
|
|
| if [ $START_STEP -le $CURRENT_STEP ] ; then
|
| - if [ ${#@} -lt 2 ] ; then
|
| + let MIN_EXPECTED_ARGS=2-$REVERT_FROM_BLEEDING_EDGE
|
| + if [ ${#@} -lt $MIN_EXPECTED_ARGS ] ; then
|
| if [ -z "$EXTRA_PATCH" ] ; then
|
| die "Either a patch file or revision numbers must be specified"
|
| fi
|
| @@ -113,9 +118,13 @@ if [ $START_STEP -le $CURRENT_STEP ] ; then
|
| fi
|
| fi
|
| echo ">>> Step $CURRENT_STEP: Preparation"
|
| - MERGE_TO_BRANCH=$1
|
| - [[ -n "$MERGE_TO_BRANCH" ]] || die "Please specify a branch to merge to"
|
| - shift
|
| + if [ $REVERT_FROM_BLEEDING_EDGE==1 ] ; then
|
| + MERGE_TO_BRANCH="bleeding_edge"
|
| + else
|
| + MERGE_TO_BRANCH=$1
|
| + [[ -n "$MERGE_TO_BRANCH" ]] || die "Please specify a branch to merge to"
|
| + shift
|
| + fi
|
| persist "MERGE_TO_BRANCH"
|
| common_prepare
|
| fi
|
| @@ -144,7 +153,11 @@ revisions associated with the patches."
|
| done
|
| if [ -n "$REVISION_LIST" ] ; then
|
| if [ -n "$REVERSE_PATCH" ] ; then
|
| - NEW_COMMIT_MSG="Rollback of$REVISION_LIST in $MERGE_TO_BRANCH branch."
|
| + if [ $REVERT_FROM_BLEEDING_EDGE -eq 0 ] ; then
|
| + NEW_COMMIT_MSG="Rollback of$REVISION_LIST in $MERGE_TO_BRANCH branch."
|
| + else
|
| + NEW_COMMIT_MSG="Revert$REVISION_LIST."
|
| + fi
|
| else
|
| NEW_COMMIT_MSG="Merged$REVISION_LIST into $MERGE_TO_BRANCH branch."
|
| fi;
|
| @@ -189,14 +202,14 @@ if [ $START_STEP -le $CURRENT_STEP ] ; then
|
| fi
|
|
|
| let CURRENT_STEP+=1
|
| -if [ $START_STEP -le $CURRENT_STEP ] ; then
|
| +if [ $START_STEP -le $CURRENT_STEP ] && [ $REVERT_FROM_BLEEDING_EDGE -eq 0 ] ; then
|
| echo ">>> Step $CURRENT_STEP: Prepare $VERSION_FILE."
|
| # These version numbers are used again for creating the tag
|
| read_and_persist_version
|
| fi
|
|
|
| let CURRENT_STEP+=1
|
| -if [ $START_STEP -le $CURRENT_STEP ] ; then
|
| +if [ $START_STEP -le $CURRENT_STEP ] && [ $REVERT_FROM_BLEEDING_EDGE -eq 0 ] ; then
|
| echo ">>> Step $CURRENT_STEP: Increment version number."
|
| restore_if_unset "PATCH"
|
| NEWPATCH=$(($PATCH + 1))
|
| @@ -234,7 +247,7 @@ if [ $START_STEP -le $CURRENT_STEP ] ; then
|
| fi
|
|
|
| let CURRENT_STEP+=1
|
| -if [ $START_STEP -le $CURRENT_STEP ] ; then
|
| +if [ $START_STEP -le $CURRENT_STEP ] && [ $REVERT_FROM_BLEEDING_EDGE -eq 0 ] ; then
|
| echo ">>> Step $CURRENT_STEP: Determine svn commit revision"
|
| restore_if_unset "NEW_COMMIT_MSG"
|
| restore_if_unset "MERGE_TO_BRANCH"
|
| @@ -248,7 +261,7 @@ if [ $START_STEP -le $CURRENT_STEP ] ; then
|
| fi
|
|
|
| let CURRENT_STEP+=1
|
| -if [ $START_STEP -le $CURRENT_STEP ] ; then
|
| +if [ $START_STEP -le $CURRENT_STEP ] && [ $REVERT_FROM_BLEEDING_EDGE -eq 0 ] ; then
|
| echo ">>> Step $CURRENT_STEP: Create the tag."
|
| restore_if_unset "SVN_REVISION"
|
| restore_version_if_unset "NEW"
|
| @@ -273,9 +286,11 @@ if [ $START_STEP -le $CURRENT_STEP ] ; then
|
| restore_if_unset "REVISION_LIST"
|
| restore_version_if_unset "NEW"
|
| common_cleanup
|
| - echo "*** SUMMARY ***"
|
| - echo "version: $NEWMAJOR.$NEWMINOR.$NEWBUILD.$NEWPATCH"
|
| - echo "branch: $TO_URL"
|
| - echo "svn revision: $SVN_REVISION"
|
| - [[ -n "$REVISION_LIST" ]] && echo "patches:$REVISION_LIST"
|
| + if [ $REVERT_FROM_BLEEDING_EDGE==0 ] ; then
|
| + echo "*** SUMMARY ***"
|
| + echo "version: $NEWMAJOR.$NEWMINOR.$NEWBUILD.$NEWPATCH"
|
| + echo "branch: $TO_URL"
|
| + echo "svn revision: $SVN_REVISION"
|
| + [[ -n "$REVISION_LIST" ]] && echo "patches:$REVISION_LIST"
|
| + fi
|
| fi
|
|
|