1589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch#!/bin/bash
23ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch# Copyright 2012 the V8 project authors. All rights reserved.
3589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# Redistribution and use in source and binary forms, with or without
4589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# modification, are permitted provided that the following conditions are
5589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# met:
6589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch#
7589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch#     * Redistributions of source code must retain the above copyright
8589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch#       notice, this list of conditions and the following disclaimer.
9589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch#     * Redistributions in binary form must reproduce the above
10589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch#       copyright notice, this list of conditions and the following
11589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch#       disclaimer in the documentation and/or other materials provided
12589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch#       with the distribution.
13589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch#     * Neither the name of Google Inc. nor the names of its
14589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch#       contributors may be used to endorse or promote products derived
15589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch#       from this software without specific prior written permission.
16589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch#
17589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
29589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
30589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch########## Global variable definitions
31589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
32589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben MurdochBRANCHNAME=prepare-push
33589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben MurdochTRUNKBRANCH=trunk-push
34589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben MurdochPERSISTFILE_BASENAME=/tmp/v8-push-to-trunk-tempfile
353ef787dbeca8a5fb1086949cda830dccee07bfbdBen MurdochCHROME_PATH=
36589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
3785b71799222b55eb5dd74ea26efe0c64ab655c8cBen Murdoch########## Function definitions
385d4cdbf7a67d3662fa0bee4efdb7edd8daec9b0bBen Murdoch
393ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochsource $(dirname $BASH_SOURCE)/common-includes.sh
403ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch
41589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochusage() {
42589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochcat << EOF
43589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochusage: $0 OPTIONS
44589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
45589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben MurdochPerforms the necessary steps for a V8 push to trunk. Only works for \
46589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochgit checkouts.
47589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
48589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben MurdochOPTIONS:
49589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  -h    Show this message
50589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  -s    Specify the step where to start work. Default: 0.
51589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  -l    Manually specify the git commit ID of the last push to trunk.
523ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  -c    Specify the path to your Chromium src/ directory to automate the
533ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch        V8 roll.
54589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben MurdochEOF
55589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch}
56589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
57589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch########## Option parsing
58589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
593ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochwhile getopts ":hs:l:c:" OPTION ; do
60589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  case $OPTION in
61589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    h)  usage
62589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch        exit 0
63589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch        ;;
643ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    s)  START_STEP=$OPTARG
65589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch        ;;
66589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    l)  LASTPUSH=$OPTARG
67589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch        ;;
683ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    c)  CHROME_PATH=$OPTARG
693ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch        ;;
70589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    ?)  echo "Illegal option: -$OPTARG"
71589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch        usage
72589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch        exit 1
73589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch        ;;
74589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  esac
75589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochdone
76589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
77589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
78589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch########## Regular workflow
79589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
803ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochinitial_environment_checks
81589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
823ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
833ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Preparation"
843ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  common_prepare
853ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  delete_branch $TRUNKBRANCH
8685b71799222b55eb5dd74ea26efe0c64ab655c8cBen Murdochfi
8785b71799222b55eb5dd74ea26efe0c64ab655c8cBen Murdoch
883ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
893ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
903ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Create a fresh branch."
91589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  git checkout -b $BRANCHNAME svn/bleeding_edge \
92589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    || die "Creating branch $BRANCHNAME failed."
93589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochfi
94589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
953ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
963ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
973ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Detect commit ID of last push to trunk."
98589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  [[ -n "$LASTPUSH" ]] || LASTPUSH=$(git log -1 --format=%H ChangeLog)
99589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  LOOP=1
100589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  while [ $LOOP -eq 1 ] ; do
101589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    # Print assumed commit, circumventing git's pager.
102589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    git log -1 $LASTPUSH | cat
103589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    confirm "Is the commit printed above the last push to trunk?"
104589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    if [ $? -eq 0 ] ; then
105589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch      LOOP=0
106589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    else
107589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch      LASTPUSH=$(git log -1 --format=%H $LASTPUSH^ ChangeLog)
108589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    fi
109589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  done
110589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  persist "LASTPUSH"
111589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochfi
112589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
1133ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
1143ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
1153ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Prepare raw ChangeLog entry."
1163ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  # These version numbers are used again later for the trunk commit.
1173ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  read_and_persist_version
118589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
119589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  DATE=$(date +%Y-%m-%d)
120589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  persist "DATE"
121589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  echo "$DATE: Version $MAJOR.$MINOR.$BUILD" > "$CHANGELOG_ENTRY_FILE"
122589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  echo "" >> "$CHANGELOG_ENTRY_FILE"
123589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  COMMITS=$(git log $LASTPUSH..HEAD --format=%H)
124589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  for commit in $COMMITS ; do
125589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    # Get the commit's title line.
126589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    git log -1 $commit --format="%w(80,8,8)%s" >> "$CHANGELOG_ENTRY_FILE"
1273ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    # Grep for "BUG=xxxx" lines in the commit message and convert them to
1283ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    # "(issue xxxx)".
1293ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    git log -1 $commit --format="%B" \
1303ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch        | grep "^BUG=" | grep -v "BUG=$" | grep -v "BUG=none$" \
1313ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch        | sed -e 's/^/        /' \
1323ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch        | sed -e 's/BUG=v8:\(.*\)$/(issue \1)/' \
1333ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch        | sed -e 's/BUG=\(.*\)$/(Chromium issue \1)/' \
1343ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch        >> "$CHANGELOG_ENTRY_FILE"
135589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    # Append the commit's author for reference.
136589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    git log -1 $commit --format="%w(80,8,8)(%an)" >> "$CHANGELOG_ENTRY_FILE"
137589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    echo "" >> "$CHANGELOG_ENTRY_FILE"
138589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  done
1393ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo "        Performance and stability improvements on all platforms." \
1403ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    >> "$CHANGELOG_ENTRY_FILE"
141589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochfi
142589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
1433ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
1443ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
1453ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Edit ChangeLog entry."
146589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  echo -n "Please press <Return> to have your EDITOR open the ChangeLog entry, \
147589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochthen edit its contents to your liking. When you're done, save the file and \
148589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochexit your EDITOR. "
149589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  read ANSWER
150589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  $EDITOR "$CHANGELOG_ENTRY_FILE"
151589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  NEWCHANGELOG=$(mktemp)
152589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  # Eliminate any trailing newlines by going through a shell variable.
1533ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  # Also (1) eliminate tabs, (2) fix too little and (3) too much indentation,
1543ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  # and (4) eliminate trailing whitespace.
1553ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  CHANGELOGENTRY=$(cat "$CHANGELOG_ENTRY_FILE" \
1563ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch                   | sed -e 's/\t/        /g' \
1573ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch                   | sed -e 's/^ \{1,7\}\([^ ]\)/        \1/g' \
1583ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch                   | sed -e 's/^ \{9,80\}\([^ ]\)/        \1/g' \
1593ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch                   | sed -e 's/ \+$//')
160589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  [[ -n "$CHANGELOGENTRY" ]] || die "Empty ChangeLog entry."
161589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  echo "$CHANGELOGENTRY" > "$NEWCHANGELOG"
162589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  echo "" >> "$NEWCHANGELOG" # Explicitly insert two empty lines.
163589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  echo "" >> "$NEWCHANGELOG"
164589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  cat ChangeLog >> "$NEWCHANGELOG"
165589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  mv "$NEWCHANGELOG" ChangeLog
166589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochfi
167589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
1683ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
1693ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
1703ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Increment version number."
171589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  restore_if_unset "BUILD"
172589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  NEWBUILD=$(($BUILD + 1))
173589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  confirm "Automatically increment BUILD_NUMBER? (Saying 'n' will fire up \
174589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochyour EDITOR on $VERSION_FILE so you can make arbitrary changes. When \
175589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochyou're done, save the file and exit your EDITOR.)"
176589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  if [ $? -eq 0 ] ; then
177589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    sed -e "/#define BUILD_NUMBER/s/[0-9]*$/$NEWBUILD/" \
178589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch        -i "$VERSION_FILE"
179589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  else
180589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    $EDITOR "$VERSION_FILE"
181589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  fi
1823ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  read_and_persist_version "NEW"
183589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochfi
184589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
1853ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
1863ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
1873ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Commit to local branch."
1883ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  restore_version_if_unset "NEW"
1893ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  PREPARE_COMMIT_MSG="Prepare push to trunk.  \
1903ef787dbeca8a5fb1086949cda830dccee07bfbdBen MurdochNow working on version $NEWMAJOR.$NEWMINOR.$NEWBUILD."
1913ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  persist "PREPARE_COMMIT_MSG"
1923ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  git commit -a -m "$PREPARE_COMMIT_MSG" \
193589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    || die "'git commit -a' failed."
194589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochfi
195589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
1963ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochupload_step
197589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
1983ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
1993ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
2003ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Commit to the repository."
2013ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  wait_for_lgtm
202589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  # Re-read the ChangeLog entry (to pick up possible changes).
203589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  cat ChangeLog | awk --posix '{
204589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    if ($0 ~ /^[0-9]{4}-[0-9]{2}-[0-9]{2}:/) {
205589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch      if (in_firstblock == 1) {
206589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch        exit 0;
207589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch      } else {
208589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch        in_firstblock = 1;
209589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch      }
210589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    };
211589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    print $0;
212589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  }' > "$CHANGELOG_ENTRY_FILE"
213589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  git cl dcommit || die "'git cl dcommit' failed, please try again."
214589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochfi
215589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
2163ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
2173ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
2183ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Fetch straggler commits that sneaked in \
2193ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochsince this script was started."
2203ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  git svn fetch || die "'git svn fetch' failed."
2213ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  git checkout svn/bleeding_edge
2223ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  restore_if_unset "PREPARE_COMMIT_MSG"
2233ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  PREPARE_COMMIT_HASH=$(git log -1 --format=%H --grep="$PREPARE_COMMIT_MSG")
2243ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  persist "PREPARE_COMMIT_HASH"
225589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochfi
226589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
2273ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
2283ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
2293ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Squash commits into one."
230589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  # Instead of relying on "git rebase -i", we'll just create a diff, because
231589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  # that's easier to automate.
2323ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  restore_if_unset "PREPARE_COMMIT_HASH"
2333ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  git diff svn/trunk $PREPARE_COMMIT_HASH > "$PATCH_FILE"
234589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  # Convert the ChangeLog entry to commit message format:
235589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  # - remove date
236589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  # - remove indentation
237589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  # - merge paragraphs into single long lines, keeping empty lines between them.
238589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  restore_if_unset "DATE"
239589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  CHANGELOGENTRY=$(cat "$CHANGELOG_ENTRY_FILE")
240589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  echo "$CHANGELOGENTRY" \
241589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    | sed -e "s/^$DATE: //" \
242589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    | sed -e 's/^ *//' \
243589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    | awk '{
244589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch        if (need_space == 1) {
245589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch          printf(" ");
246589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch        };
247589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch        printf("%s", $0);
248589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch        if ($0 ~ /^$/) {
249589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch          printf("\n\n");
250589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch          need_space = 0;
251589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch        } else {
252589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch          need_space = 1;
253589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch        }
254589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch      }' > "$COMMITMSG_FILE" || die "Commit message editing failed."
255589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  rm -f "$CHANGELOG_ENTRY_FILE"
256589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochfi
257589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
2583ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
2593ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
2603ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Create a new branch from trunk."
261589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  git checkout -b $TRUNKBRANCH svn/trunk \
262589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    || die "Checking out a new branch '$TRUNKBRANCH' failed."
263589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochfi
264589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
2653ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
2663ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
2673ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Apply squashed changes."
26885b71799222b55eb5dd74ea26efe0c64ab655c8cBen Murdoch  rm -f "$TOUCHED_FILES_FILE"
2693ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  apply_patch "$PATCH_FILE"
2703ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  stage_files
2713ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  rm -f "$PATCH_FILE"
272589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochfi
273589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
2743ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
2753ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
2763ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Set correct version for trunk."
2773ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  restore_version_if_unset
278589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  sed -e "/#define MAJOR_VERSION/s/[0-9]*$/$MAJOR/" \
279589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch      -e "/#define MINOR_VERSION/s/[0-9]*$/$MINOR/" \
280589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch      -e "/#define BUILD_NUMBER/s/[0-9]*$/$BUILD/" \
281589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch      -e "/#define PATCH_LEVEL/s/[0-9]*$/0/" \
282589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch      -e "/#define IS_CANDIDATE_VERSION/s/[0-9]*$/0/" \
283589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch      -i "$VERSION_FILE" || die "Patching $VERSION_FILE failed."
284589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochfi
285589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
2863ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
2873ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
2883ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Commit to local trunk branch."
289589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  git add "$VERSION_FILE"
290589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  git commit -F "$COMMITMSG_FILE" || die "'git commit' failed."
291589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  rm -f "$COMMITMSG_FILE"
292589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochfi
293589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
2943ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
2953ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
2963ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Sanity check."
297589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  confirm "Please check if your local checkout is sane: Inspect $VERSION_FILE, \
298589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochcompile, run tests. Do you want to commit this new trunk revision to the \
299589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochrepository?"
300589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  [[ $? -eq 0 ]] || die "Execution canceled."
301589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochfi
302589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
3033ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
3043ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
3053ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Commit to SVN."
3063ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  git svn dcommit | tee >(grep -E "^Committed r[0-9]+" \
3073ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch                          | sed -e 's/^Committed r\([0-9]\+\)/\1/' \
3083ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch                          > "$TRUNK_REVISION_FILE") \
3093ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    || die "'git svn dcommit' failed."
3103ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  TRUNK_REVISION=$(cat "$TRUNK_REVISION_FILE")
3113ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  persist "TRUNK_REVISION"
3123ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  rm -f "$TRUNK_REVISION_FILE"
313589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochfi
314589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
3153ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
3163ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
3173ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Tag the new revision."
3183ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  restore_version_if_unset
319589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch  git svn tag $MAJOR.$MINOR.$BUILD -m "Tagging version $MAJOR.$MINOR.$BUILD" \
320589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch    || die "'git svn tag' failed."
321589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdochfi
322589d6979ff2ef66fca2d8fa51404c369ca5e9250Ben Murdoch
3233ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ -n "$CHROME_PATH" ] ; then
3243ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch
3253ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  let CURRENT_STEP+=1
3263ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  if [ $START_STEP -le $CURRENT_STEP ] ; then
3273ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    echo ">>> Step $CURRENT_STEP: Switch to Chromium checkout."
3283ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    V8_PATH=$(pwd)
3293ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    persist "V8_PATH"
3303ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    cd "$CHROME_PATH"
3313ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    initial_environment_checks
3323ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    # Check for a clean workdir.
3333ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    [[ -z "$(git status -s -uno)" ]] \
3343ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch      || die "Workspace is not clean. Please commit or undo your changes."
3353ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    # Assert that the DEPS file is there.
3363ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    [[ -w "DEPS" ]] || die "DEPS file not present or not writable; \
3373ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochcurrent directory is: $(pwd)."
3383ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  fi
33985b71799222b55eb5dd74ea26efe0c64ab655c8cBen Murdoch
3403ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  let CURRENT_STEP+=1
3413ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  if [ $START_STEP -le $CURRENT_STEP ] ; then
3423ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    echo ">>> Step $CURRENT_STEP: Update the checkout and create a new branch."
3433ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    git checkout master || die "'git checkout master' failed."
3443ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    git pull || die "'git pull' failed, please try again."
3453ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    restore_if_unset "TRUNK_REVISION"
3463ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    git checkout -b "v8-roll-$TRUNK_REVISION" \
3473ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch      || die "Failed to checkout a new branch."
3483ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  fi
3493ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch
3503ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  let CURRENT_STEP+=1
3513ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  if [ $START_STEP -le $CURRENT_STEP ] ; then
3523ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    echo ">>> Step $CURRENT_STEP: Create and upload CL."
3533ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    # Patch DEPS file.
3543ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    sed -r -e "/\"v8_revision\": /s/\"[0-9]+\"/\"$TRUNK_REVISION\"/" \
3553ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch        -i DEPS
3563ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    restore_version_if_unset
3573ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    echo -n "Please enter the email address of a reviewer for the roll CL: "
3583ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    read REVIEWER
3593ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    git commit -am "Update V8 to version $MAJOR.$MINOR.$BUILD.
3603ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch
3613ef787dbeca8a5fb1086949cda830dccee07bfbdBen MurdochTBR=$REVIEWER" || die "'git commit' failed."
3623ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    git cl upload --send-mail \
3633ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch      || die "'git cl upload' failed, please try again."
3643ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    echo "CL uploaded."
3653ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  fi
3663ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch
3673ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  let CURRENT_STEP+=1
3683ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  if [ $START_STEP -le $CURRENT_STEP ] ; then
3693ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    echo ">>> Step $CURRENT_STEP: Returning to V8 checkout."
3703ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    restore_if_unset "V8_PATH"
3713ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    cd "$V8_PATH"
3723ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  fi
3733ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochfi  # if [ -n "$CHROME_PATH" ]
3743ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch
3753ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochlet CURRENT_STEP+=1
3763ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochif [ $START_STEP -le $CURRENT_STEP ] ; then
3773ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo ">>> Step $CURRENT_STEP: Done!"
3783ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  restore_version_if_unset
3793ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  restore_if_unset "TRUNK_REVISION"
3803ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  if [ -n "$CHROME_PATH" ] ; then
3813ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    echo "Congratulations, you have successfully created the trunk revision \
3823ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch$MAJOR.$MINOR.$BUILD and rolled it into Chromium. Please don't forget to \
3833ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdochupdate the v8rel spreadsheet:"
3843ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  else
3853ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch    echo "Congratulations, you have successfully created the trunk revision \
3863ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch$MAJOR.$MINOR.$BUILD. Please don't forget to roll this new version into \
3873ef787dbeca8a5fb1086949cda830dccee07bfbdBen MurdochChromium, and to update the v8rel spreadsheet:"
3883ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  fi
3893ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  echo -e "$MAJOR.$MINOR.$BUILD\ttrunk\t$TRUNK_REVISION"
3903ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  common_cleanup
3913ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  [[ "$TRUNKBRANCH" != "$CURRENT_BRANCH" ]] && git branch -D $TRUNKBRANCH
39285b71799222b55eb5dd74ea26efe0c64ab655c8cBen Murdochfi
393