| Index: tools/push-to-trunk.sh | 
| diff --git a/tools/push-to-trunk.sh b/tools/push-to-trunk.sh | 
| index bd5d003cfdda2fc3cba185824eaa2152c48522ee..48748bf3aca544f400b4aa3c116691b99459e755 100755 | 
| --- a/tools/push-to-trunk.sh | 
| +++ b/tools/push-to-trunk.sh | 
| @@ -38,6 +38,7 @@ CHANGELOG_ENTRY_FILE="$PERSISTFILE_BASENAME-changelog-entry" | 
| PATCH_FILE="$PERSISTFILE_BASENAME-patch" | 
| COMMITMSG_FILE="$PERSISTFILE_BASENAME-commitmsg" | 
| TOUCHED_FILES_FILE="$PERSISTFILE_BASENAME-touched-files" | 
| +TRUNK_REVISION_FILE="$PERSISTFILE_BASENAME-trunkrevision" | 
| STEP=0 | 
|  | 
|  | 
| @@ -225,7 +226,13 @@ exit your EDITOR. " | 
| $EDITOR "$CHANGELOG_ENTRY_FILE" | 
| NEWCHANGELOG=$(mktemp) | 
| # Eliminate any trailing newlines by going through a shell variable. | 
| -  CHANGELOGENTRY=$(cat "$CHANGELOG_ENTRY_FILE") | 
| +  # Also (1) eliminate tabs, (2) fix too little and (3) too much indentation, | 
| +  # and (4) eliminate trailing whitespace. | 
| +  CHANGELOGENTRY=$(cat "$CHANGELOG_ENTRY_FILE" \ | 
| +                   | sed -e 's/\t/        /g' \ | 
| +                   | sed -e 's/^ \{1,7\}\([^ ]\)/        \1/g' \ | 
| +                   | sed -e 's/^ \{9,80\}\([^ ]\)/        \1/g' \ | 
| +                   | sed -e 's/ \+$//') | 
| [[ -n "$CHANGELOGENTRY" ]] || die "Empty ChangeLog entry." | 
| echo "$CHANGELOGENTRY" > "$NEWCHANGELOG" | 
| echo "" >> "$NEWCHANGELOG" # Explicitly insert two empty lines. | 
| @@ -260,8 +267,10 @@ if [ $STEP -le 7 ] ; then | 
| restore_if_unset "NEWMAJOR" | 
| restore_if_unset "NEWMINOR" | 
| restore_if_unset "NEWBUILD" | 
| -  git commit -a -m "Prepare push to trunk.  \ | 
| -Now working on version $NEWMAJOR.$NEWMINOR.$NEWBUILD." \ | 
| +  PREPARE_COMMIT_MSG="Prepare push to trunk.  \ | 
| +Now working on version $NEWMAJOR.$NEWMINOR.$NEWBUILD." | 
| +  persist "PREPARE_COMMIT_MSG" | 
| +  git commit -a -m $PREPARE_COMMIT_MSG \ | 
| || die "'git commit -a' failed." | 
| fi | 
|  | 
| @@ -276,7 +285,8 @@ fi | 
| if [ $STEP -le 9 ] ; then | 
| echo ">>> Step 9: Commit to the repository." | 
| echo "Please wait for an LGTM, then type \"LGTM<Return>\" to commit your \ | 
| -change. (If you need to iterate on the patch, do so in another shell.)" | 
| +change. (If you need to iterate on the patch, do so in another shell. Do not \ | 
| +modify the existing local commit's commit message.)" | 
| unset ANSWER | 
| while [ "$ANSWER" != "LGTM" ] ; do | 
| [[ -n "$ANSWER" ]] && echo "That was not 'LGTM'." | 
| @@ -298,15 +308,21 @@ change. (If you need to iterate on the patch, do so in another shell.)" | 
| fi | 
|  | 
| if [ $STEP -le 10 ] ; then | 
| -  echo ">>> Step 10: NOP" | 
| -  # Present in the manual guide, not necessary (even harmful!) for this script. | 
| +  echo ">>> Step 10: Fetch straggler commits that sneaked in between \ | 
| +steps 1 and 9." | 
| +  git svn fetch || die "'git svn fetch' failed." | 
| +  git checkout svn/bleeding_edge | 
| +  restore_if_unset "PREPARE_COMMIT_MSG" | 
| +  PREPARE_COMMIT_HASH=$(git log -1 --format=%H --grep="$PREPARE_COMMIT_MSG") | 
| +  persist "PREPARE_COMMIT_HASH" | 
| fi | 
|  | 
| if [ $STEP -le 11 ] ; then | 
| echo ">>> Step 11: Squash commits into one." | 
| # Instead of relying on "git rebase -i", we'll just create a diff, because | 
| # that's easier to automate. | 
| -  git diff svn/trunk > "$PATCH_FILE" | 
| +  restore_if_unset "PREPARE_COMMIT_HASH" | 
| +  git diff svn/trunk $PREPARE_COMMIT_HASH > "$PATCH_FILE" | 
| # Convert the ChangeLog entry to commit message format: | 
| # - remove date | 
| # - remove indentation | 
| @@ -401,7 +417,10 @@ fi | 
|  | 
| if [ $STEP -le 17 ] ; then | 
| echo ">>> Step 17. Commit to SVN." | 
| -  git svn dcommit || die "'git svn dcommit' failed." | 
| +  git svn dcommit | tee >(grep -E "^Committed r[0-9]+" \ | 
| +                          | sed -e 's/^Committed r\([0-9]\+\)/\1/' \ | 
| +                          > "$TRUNK_REVISION_FILE") \ | 
| +    || die "'git svn dcommit' failed." | 
| fi | 
|  | 
| if [ $STEP -le 18 ] ; then | 
| @@ -428,8 +447,10 @@ if [ $STEP -le 20 ] ; then | 
| restore_if_unset "MINOR" | 
| restore_if_unset "BUILD" | 
| echo "Congratulations, you have successfully created the trunk revision \ | 
| -$MAJOR.$MINOR.$BUILD. Please don't forget to update the v8rel spreadsheet, \ | 
| -and to roll this new version into Chromium." | 
| +$MAJOR.$MINOR.$BUILD. Please don't forget to roll this new version into \ | 
| +Chromium, and to update the v8rel spreadsheet:" | 
| +  TRUNK_REVISION=$(cat "$TRUNK_REVISION_FILE") | 
| +  echo "$MAJOR.$MINOR.$BUILD\ttrunk\t$TRUNK_REVISION" | 
| # Clean up all temporary files. | 
| rm -f "$PERSISTFILE_BASENAME"* | 
| fi | 
|  |