aboutsummaryrefslogtreecommitdiffstats
path: root/tool/bisect.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tool/bisect.sh')
-rwxr-xr-xtool/bisect.sh42
1 files changed, 42 insertions, 0 deletions
diff --git a/tool/bisect.sh b/tool/bisect.sh
new file mode 100755
index 0000000000..fb22bf429b
--- /dev/null
+++ b/tool/bisect.sh
@@ -0,0 +1,42 @@
+#!/bin/sh
+# usage:
+# edit $(srcdir)/test.rb
+# git bisect start `git svn find-rev <rBADREV>` `git svn find-rev <rGOODREV>`
+# cd <builddir>
+# make bisect (or bisect-ruby for full ruby)
+
+if [ "x" = "x$MAKE" ]; then
+ MAKE=make
+fi
+
+case $1 in
+ miniruby | ruby ) # (miniruby|ruby) <srcdir>
+ srcdir=$2
+ builddir=`pwd` # assume pwd is builddir
+ path=$builddir/_bisect.sh
+ echo "path: $path"
+ cp $0 $path
+ cd $srcdir
+ echo "git bisect run $path run-$1"
+ git bisect run $path run-$1
+ ;;
+ run-miniruby )
+ cd ${0%/*} # assume a copy of this script is in builddir
+ $MAKE Makefile
+ $MAKE mini || exit 125
+ $MAKE run || exit 1
+ ;;
+ run-ruby )
+ cd ${0%/*} # assume a copy of this script is in builddir
+ $MAKE Makefile
+ $MAKE program || exit 125
+ $MAKE runruby || exit 1
+ ;;
+ "" )
+ echo foo bar
+ ;;
+ * )
+ echo unkown command "'$cmd'"
+ ;;
+esac
+exit 0