Chromium Code Reviews| Index: tools/v8-rolls.sh |
| diff --git a/tools/v8-rolls.sh b/tools/v8-rolls.sh |
| new file mode 100755 |
| index 0000000000000000000000000000000000000000..c46f752ff2e1e1390bbf6786653526e6036e898a |
| --- /dev/null |
| +++ b/tools/v8-rolls.sh |
| @@ -0,0 +1,120 @@ |
| +#!/bin/bash |
| +# Copyright 2013 the V8 project authors. All rights reserved. |
| +# Redistribution and use in source and binary forms, with or without |
| +# modification, are permitted provided that the following conditions are |
| +# met: |
| +# |
| +# * Redistributions of source code must retain the above copyright |
| +# notice, this list of conditions and the following disclaimer. |
| +# * Redistributions in binary form must reproduce the above |
| +# copyright notice, this list of conditions and the following |
| +# disclaimer in the documentation and/or other materials provided |
| +# with the distribution. |
| +# * Neither the name of Google Inc. nor the names of its |
| +# contributors may be used to endorse or promote products derived |
| +# from this software without specific prior written permission. |
| +# |
| +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| + |
| + |
| +########## Global variable definitions |
| + |
| +DEPS_STRING='"v8_revision":' |
| +INFO=tools/v8-info.sh |
| + |
| +V8="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" |
| + |
| +########## Option parsing |
| + |
| +REVISIONS=1 |
| +START=HEAD |
| + |
| +while getopts ":hn:s:" OPTION ; do |
| + case $OPTION in |
| + h) usage |
|
Jakob Kummerow
2013/06/12 10:31:07
This isn't JavaScript. There are rules. You can't
Toon Verwaest
2013/06/12 10:43:16
Done.
|
| + exit 0 |
| + ;; |
| + n) REVISIONS=$OPTARG |
| + ;; |
| + s) START=$OPTARG |
| + ;; |
| + ?) echo "Illegal option: -$OPTARG" |
| + usage |
| + exit 1 |
| + ;; |
| + esac |
| +done |
| + |
| +########## Function definitions |
| + |
| +usage() { |
| +cat << EOF |
| +usage: $0 OPTIONS |
| + |
| +Run in chromium/src to get information about V8 rolls. |
| + |
| +OPTIONS: |
| + -h Show this message. |
| + -n Number of rolls to print information about. |
| + -s Chromium git hash to start printing V8 information about. |
| +EOF |
| +} |
| + |
| +v8_line() { |
| + git show $1:DEPS | grep -n $DEPS_STRING | cut -d":" -f1 |
| +} |
| + |
| +v8_info() { |
| + git blame -L$(v8_line $1),+1 $1 DEPS | grep $DEPS_STRING |
| +} |
| + |
| +v8_svn() { |
| + sed -e 's/^.*"\([0-9]\+\)",$/\1/' |
| +} |
| + |
| +v8_roll() { |
| + cut -d" " -f1 |
| +} |
| + |
| +find_rev() { |
| + git svn find-rev $1 |
| +} |
| + |
| +msg() { |
| + msg=$(git log --format="%h %ci %ce" -1 $1) |
| + h=$(echo $msg | cut -d" " -f1) |
| + d=$(echo $msg | cut -d" " -f2) |
| + t=$(echo $msg | cut -d" " -f3) |
| + a=$(echo $msg | cut -d" " -f5) |
| + a1=$(echo $a | cut -d"@" -f1) |
| + a2=$(echo $a | cut -d"@" -f2) |
| + echo $h $d $t $a1@$a2 |
| +} |
| + |
| +v8_revision() { |
| + cd $V8 |
| + $INFO -v $1 |
| +} |
| + |
| +rolls() { |
| + roll=$2 |
| + for i in $(seq 1 $1); do |
| + info=$(v8_info $roll) |
| + roll=$(echo $info | v8_roll $roll) |
| + trunk=$(echo $info | v8_svn $roll) |
| + echo "$(v8_revision $trunk) $trunk $(find_rev $roll) $(msg $roll)" |
| + roll=$roll^1 |
| + done |
| +} |
| + |
| +rolls $REVISIONS $START |