Index: tools/v8-rolls.sh |
diff --git a/tools/v8-rolls.sh b/tools/v8-rolls.sh |
new file mode 100755 |
index 0000000000000000000000000000000000000000..590e05c1f9cd81498589c8770794bc1dc575bb9e |
--- /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)" |
+ |
+########## 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 |
+} |
+ |
+########## Option parsing |
+ |
+REVISIONS=1 |
+START=HEAD |
+ |
+while getopts ":hn:s:" OPTION ; do |
+ case $OPTION in |
+ h) usage |
+ exit 0 |
+ ;; |
+ n) REVISIONS=$OPTARG |
+ ;; |
+ s) START=$OPTARG |
+ ;; |
+ ?) echo "Illegal option: -$OPTARG" |
+ usage |
+ exit 1 |
+ ;; |
+ esac |
+done |
+ |
+rolls $REVISIONS $START |