Thanks for the answers :) After seeing that git push skips the packing (and potentially other things) when doing a dry run, and given that: git push --dry-run takes 1.5s on average and that: git fetch git rev-list master..remotes/origin/master OR git ls-remote origin refs/remotes/origin/master take 4s on average, I think I'll stick with the dry-run & checking for exception method. Thanks though :) 2009/7/7 Michael J Gruber <git@xxxxxxxxxxxxxxxxxxxx>: > If $(git rev-list bar..remotes/origin/foo) is empty then the branch foo > in the remote repo can be fast-forwarded to bar. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html