Maybe? What if the new target branch is unborn? Doing a `if (call < 0) goto cleanup` here causes that functionality to fail.

Maybe we don't care about a failure; if we can't resolve the new target reference to an OID, we use zeros. Is that okay?