I have an internal listener that provides the same kinds of things talked about in T5064, it runs our build and tests things locally before allowing a land to go through. However, if a build fails (we throw an exception), you are now left in a state where you're not really sure exactly what to do. The default behavior here should almost certainly be to at least tell you how to recover from this situation, but arc can reasonably do the following as well I think:
- Get rid of any commits it may have just applied to your local master
- Recover the branch it just deleted
- Switch you back to that branch
This will basically put the user right back where they started before they ran arc land and it failed.