#! /bin/sh set -ex compile=false if [ "$1" = -c ];then compile=true shift fi if [ $# != 1 ] || ! echo "$1" | grep -q '-';then echo >&2 "Syntax: $0 branch-list-delimited-by-dashes" exit 1 fi base="gdb/master" gerrit=true if git branch -D gerrit;then git checkout gdb/master git checkout -b gerrit else gerrit=false fi for elem in $(echo "$1"|tr '-' ' ');do if [ "$base" = "gdb/master" ];then next="$elem" else next="$base-$elem" fi git checkout "$next" git merge "$base" if $compile;then make fi if [ -e "$next".patch ];then echo -e '/^--- /,$d\nw'|ed "$next".patch || : fi git diff "$base" "$next"|diffdecvs >>"$next".patch if $gerrit;then cp "$next".patch dashtopatch.patch echo -e '/^--- /,$d\nw'|ed dashtopatch.patch git checkout gerrit patch -p1 <"$next".patch git commit -a -F dashtopatch.patch rm -f dashtopatch.patch fi base="$next" done git checkout "$next" echo OK