As mentioned in P251: currently when a diff is uploaded to Differential, the CI doesn't apply the dependencies of the revision that the diff is attached to when instructed to build it. If the revision in question doesn't have dependencies, then this doesn't matter. If it does, then applying the patch fails, as does the build.
The cause of this is because arcanist doesn't support creating or applying dependant revisions when working on a svn-based working copy. For those of us working on git-based working copies, this is a little frustrating, as we can create dependant revisions but they fail to apply properly on the CI.
This revision provides an arcanist extension that not only allows applying dependant revisions on a svn working copy, but also uses a different (simpler but naive) way of determining which revisions should be applied. (The actual applying of patches is still handled by arc patch in the background.)
Code style is based on that used by arcanist/Phabricator code, rather than the established styling of 0AD. This can be changed if people prefer.
It should be noted that this new workflow doesn't show up in arc help. The short explanation: for it to show up it would need to be hard-coded in with the other "legacy" workflows upstream.
Longer explanation: Phabricator has two types of workflows: "toolset" and "classic"/"legacy". The "toolset" type is newer (and I think the intention was to port all workflows over to it, but now that Phabricator is no longer being maintained...), however the transition is not finished and arcanist's repository-API code can't handle this being a "toolset" workflow at this time.