<td>One way link (JIRA{icon long-arrow-right}review)</td>
<td>One way link (JIRA{icon long-arrow-right}review)</td>
<td>Two way link</td>
</tr>
<tr>
<td>Dependency between changes</td>
<td>Not supported</td>
<td>Explicit, via Git commits</td>
<td>Explicit, external to Git</td>
</tr>
<tr><td>
results - Commits vs Change </td>
<td>All interim commits + empty Merge commit in the logs. Link to PR only parsed in GH. Branch needs to be removed</td>
<td>A single commit. Link to review is a hash that is only usable via search. </td>
<td>A single commit. Link to review in plain text. Reviewers, summary, test plan and tickets are explicitly written in the commit message.</td>
</tr>
<tr><td>push permissions</td>
<td>Can limit read/write to persons to repository</td>
<td>Can limit read/write to persons per branch</td>
<td>Can limit read/write to persons; Supports advanced rules to prevent commits based on content, user, branch, and review status.</td>
</tr>
</table>
Advantages:
------
- Traceability and audit trail: The commit log / blame log contains a link to each review made, exposing the discussions.
- Commit message is generated from the revision details, which may be edited (Before committing) from the UI.
- When submitting a revision, there's a structured form, with fields for Description, Test Plan, and Tickets (etc). This forces users to create the data, and allows for searching through later.
- Can provide more granular control on commits (via [[/herald/ | Herald]]).
- Provides a pipeline for linting code before a review; Lints can warn about common errors before human intervention.
- Decouples local commits from "master" commits; Local changes can be in small/messy commits, final change contains a single coherent change.
- Avoids polluting the global space with short-lived branches (//GitHub//).
- Entire change in a single page (//Gerrit//).
- More about revisions upstream: [[ https://secure.phabricator.com/book/phabflavor/article/recommendations_on_revision_control/ | Recommendations on Revision Control]] and [[ https://secure.phabricator.com/book/phabflavor/article/writing_reviewable_code/ | Writing Reviewable Code]].
- And at http://cramer.io/2014/05/03/on-pull-requests/
- Own the code: Installs are expected to make changes to the tool's code, to fit their needs. The code is very modular and clean (Even though it's PHP).