Something like
(set -e; git rev-list --reverse upstream.. | while read r; do git checkout -q $r && make check; done)
(Aped from the very excellent http://blog.extracheese.org/2010/12/rebase-is-safe.html)