Phabricator/Differential/Code Review Workflows

= Differential workflows =

concepts
The  command will create a diff from your local code.

By default,  will push the patch shown in   up for review.

Passing a commit to, e.g.,   will push the code represented by the patch shown in.

Submitting a draft diff
This allows you to start a differential revision that is still a work in progress and not yet ready for review. The only difference from regular revisions is that you add the  argument to arc diff, to signify that your revision is a work in-progress/draft. This also allows you to submit a diff without explicitly naming reviewers. Optionally, you may name interested parties via the  argument as I have done here:

Landing a revision
The  command has been greatly improved by rARCa03c6079bb71d4f8d4cd4c8c661642f753349760. Now the workflow is absolutely straightforward and  will almost always do the right thing.

To land your own revision that exists in a local branch, use. To land a revision that you don't have in a local branch, pass the differential revision as the argument to, e.g.

Here is a complete real-world example, including the output from the  command:

Amending a Diff owned by another developer
Sometimes you want to amend a Diff that you did not author but still leave the ownership with the original author. Here's how:

Re-Run Tests for a Diff
When tests fail the fault may not be with the patch being tested, but within the testing infrastructure itself. As a result, it is sometimes necessary or desirable to re-run automated tests to verify their results. To re-run tests on a submitted diff, run  in your local repository. You will be prompted to fill in a change description—this is not strictly necessary for automated CI to re-run, but a reply of "recheck" will clue-in watchers of the diff as to what is happening.