| Index: tools/merge-to-branch.sh
|
| diff --git a/tools/merge-to-branch.sh b/tools/merge-to-branch.sh
|
| index d75cafd906861154124d31606b020129232e9680..49bf3e44896cefdb3d90d79d42276e87bcb19bbd 100755
|
| --- a/tools/merge-to-branch.sh
|
| +++ b/tools/merge-to-branch.sh
|
| @@ -48,6 +48,7 @@ to other branches, including trunk.
|
| OPTIONS:
|
| -h Show this message
|
| -s Specify the step where to start work. Default: 0.
|
| + -p Specify a patch file to apply as part of the merge
|
| EOF
|
| }
|
|
|
| @@ -61,17 +62,19 @@ restore_patch_commit_hashes() {
|
|
|
| restore_patch_commit_hashes_if_unset() {
|
| [[ "${#PATCH_COMMIT_HASHES[@]}" == 0 ]] && restore_patch_commit_hashes
|
| - [[ "${#PATCH_COMMIT_HASHES[@]}" == 0 ]] && \
|
| + [[ "${#PATCH_COMMIT_HASHES[@]}" == 0 ]] && [[ -z "$EXTRA_PATCH" ]] && \
|
| die "Variable PATCH_COMMIT_HASHES could not be restored."
|
| }
|
|
|
| ########## Option parsing
|
|
|
| -while getopts ":hs:f" OPTION ; do
|
| +while getopts ":hs:fp:" OPTION ; do
|
| case $OPTION in
|
| h) usage
|
| exit 0
|
| ;;
|
| + p) EXTRA_PATCH=$OPTARG
|
| + ;;
|
| f) rm -f "$ALREADY_MERGING_SENTINEL_FILE"
|
| ;;
|
| s) START_STEP=$OPTARG
|
| @@ -95,6 +98,9 @@ touch "$ALREADY_MERGING_SENTINEL_FILE"
|
| initial_environment_checks
|
|
|
| if [ $START_STEP -le $CURRENT_STEP ] ; then
|
| + if [ ${#@} -lt 2 ] && [ -z "$EXTRA_PATCH" ] ; then
|
| + die "Either a patch file or revision numbers must be specified"
|
| + fi
|
| echo ">>> Step $CURRENT_STEP: Preparation"
|
| MERGE_TO_BRANCH=$1
|
| [[ -n "$MERGE_TO_BRANCH" ]] || die "Please specify a branch to merge to"
|
| @@ -121,11 +127,15 @@ revisions associated with the patches."
|
| [[ -n "$NEXT_HASH" ]] \
|
| || die "Cannot determine git hash for r$REVISION"
|
| PATCH_COMMIT_HASHES[$current]="$NEXT_HASH"
|
| - [[ -n "$NEW_COMMIT_MSG" ]] && NEW_COMMIT_MSG="$NEW_COMMIT_MSG,"
|
| - NEW_COMMIT_MSG="$NEW_COMMIT_MSG r$REVISION"
|
| + [[ -n "$REVISION_LIST" ]] && REVISION_LIST="$REVISION_LIST,"
|
| + REVISION_LIST="$REVISION_LIST r$REVISION"
|
| let current+=1
|
| done
|
| - NEW_COMMIT_MSG="Merged$NEW_COMMIT_MSG into $MERGE_TO_BRANCH branch."
|
| + if [ -z "$REVISION_LIST" ] ; then
|
| + NEW_COMMIT_MSG="Applied patch to $MERGE_TO_BRANCH branch."
|
| + else
|
| + NEW_COMMIT_MSG="Merged$REVISION_LIST into $MERGE_TO_BRANCH branch."
|
| + fi;
|
|
|
| echo "$NEW_COMMIT_MSG" > $COMMITMSG_FILE
|
| echo "" >> $COMMITMSG_FILE
|
| @@ -145,6 +155,7 @@ revisions associated with the patches."
|
| echo "BUG=$BUG_AGGREGATE" >> $COMMITMSG_FILE
|
| fi
|
| persist "NEW_COMMIT_MSG"
|
| + persist "REVISION_LIST"
|
| persist_patch_commit_hashes
|
| fi
|
|
|
| @@ -159,6 +170,9 @@ if [ $START_STEP -le $CURRENT_STEP ] ; then
|
| git log -1 -p $HASH > "$TEMPORARY_PATCH_FILE"
|
| apply_patch "$TEMPORARY_PATCH_FILE"
|
| done
|
| + if [ -n "$EXTRA_PATCH" ] ; then
|
| + apply_patch "$EXTRA_PATCH"
|
| + fi
|
| stage_files
|
| fi
|
|
|
| @@ -234,10 +248,20 @@ if [ $START_STEP -le $CURRENT_STEP ] ; then
|
| https://v8.googlecode.com/svn/$TO_URL \
|
| https://v8.googlecode.com/svn/tags/$NEWMAJOR.$NEWMINOR.$NEWBUILD.$NEWPATCH \
|
| -m "Tagging version $NEWMAJOR.$NEWMINOR.$NEWBUILD.$NEWPATCH"
|
| + persist "TO_URL"
|
| fi
|
|
|
| let CURRENT_STEP+=1
|
| if [ $START_STEP -le $CURRENT_STEP ] ; then
|
| echo ">>> Step $CURRENT_STEP: Cleanup."
|
| + restore_if_unset "SVN_REVISION"
|
| + restore_if_unset "TO_URL"
|
| + 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"
|
| fi
|
|
|