--- /dev/null
+#!/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
+ 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
+
+