Currently during sqitch deploy, Sqitch checks the dependencies (requires and conflicts) for each change before it is deployed. The downside is that one could get halfway through a deploy before a deployment fails and triggers a reversion. Better would be to validate the dependencies of all changes to be deployed before deploying any of them. That way, it can fail early, letting the user know what's missing (or conflicting) before making any changes to the database. The same early detection should be applied on reversion (#36), as well.
It's important to also check for cycles between projects.
Done for deploy in b7ec1ac.
Done for revert in 23f802d.
Still need to think about cycles.
Realize that cycles are impossible, but we should makes sure that a change cannot be deployed twice. It will fail due to a PK violation, but we should check for that before deploying.
Checked to make sure that none are already deployed before deploying any in df6d0bc. Should check_revert_dependencies also make sure that all can be reverted? I'm kind of thinking not.