#!/bin/sh master_sha1=`git rev-parse --verify refs/heads/master` LF=' ' (cd .git/refs/heads && find -type f) | sed -n \ -e 's/^\.\///' \ -e '/^[^\/][^\/]\//p' | while read topic do case " $* " in *' '"$topic"' '*) echo >&2 "* Skipping $topic" continue ;; esac rebase= done= not_done= trouble= date= topic_sha1=`git rev-parse --verify "refs/heads/$topic"` date=` git-rev-list -1 --pretty "$topic" | sed -ne 's/^Date: *\(.*\)/ (\1)/p' ` only_next_1=`git-rev-list ^master "^$topic" next | sort` only_next_2=`git-rev-list ^master next | sort` rebase= if test "$only_next_1" = "$only_next_2" then not_in_topic=`git-rev-list "^$topic" master` if test -z "$not_in_topic" then :; # already up-to-date. else rebase=" (can be rebased)" fi fi if test -n "$rebase" then echo "Rebasing $topic to pick up:" git-rev-list --pretty=oneline "^$topic" master | sed -e 's/^[0-9a-f]* / * /' git checkout "$topic" && git rebase master || break; fi done