From my personal experience, it is common as a developer that you have features/bug fixes that are based on other features / bug fixes.
Here is an example. Let's say that I have two bug fixes which has their own tasks in Phabricator; `T1` and `T2`. However, in order to solve the bug of `T2`, I first need to solve `T1`.
So, let's say I do an `arc feature t1` from `master`, solve the bug described in the task `T1`, I send that in to code review via `arc diff`, which creates the a differential revision `D1`.
Now since in order to solve `T2` I needed `D1`, I stand in that branch and do `arc feature t2`. Do my changes and push it up with `arc diff` which creates `D2`.
Branch-wise it means my branches local looks like this: `master -> t1 -> t2`.
Revision wise, it looks like this: `D1 -> D2`.
I think this is pretty common right in software development, right? That you have branches or commits that are based on each other to make small changes that are easier to code review and belongs to a specific code change intent.
However, it seems like Phabricator doesn't support this flow at all?
Because let's say one of my colleagues needs to download `D2` and test is locally on their computer. But when they type `arc patch D2` they get the error message `This diff is against commit [SHA-key of the first commit], but the commit is nowhere in the working copy.`.
I must be missing something here. How are you suppose to use Phabricator with changes that depends on other changes? Because this is pretty normal way to work, right?
Any feedback would be appreciated!