| Feature | GitHub | Phabricator | Notes |
| ## Code | |||
| UI for adding/removing files | X | - | |
| UI for editing files & committing | X | - | |
| Preview README markdown files | X | X | |
| Image previews | X | X | |
| Browse or download file tree for each Git tag | X | - | |
| Add release notes to Git tags | X | - | |
| Attach files (such as tarballs) to Git tags | X | - | |
| UI to create branches | X | - | |
| Branch comparison tool | X | GitHub does global branch file diffs in one page as well as commits, Phabricator only lists commits and has a per file page to see the visual diff | |
| Fork to personal repo | X | - | |
| Organize repos into groups | X | - | In GitHub you can organize repos with Organizations and Topics. |
| Download repo's files at any point in history (like git archive) | X | - | |
| Visual Git blame | X | X | Phabricator only shows the commit hash; GitHub shows author and commit summary |
| Download RAW file | X | X | |
| Fine grained access control | X | X | |
| Per-project code search | X | Phabricator only offers search by commit message and file names | |
| Global code search | X | - | |
| Repo activity charts | X | - | |
| ## Issues | |||
| Milestones/deadlines | X | X | Phabricator can define milestones using tags, and has a Countdown plugin for date-based deadlines |
| Freeform tags | X | - | Phabricator supports this through custom fields, controlled by the sysadmin; or project tags |
| Subscribe to issues | X | X | |
| Assign issue to a Git project | X | X | Phabricator assigns tasks to tags, so each Git project needs a tag (though tags do not necessarily map to repositories) |
| Reassign issues between projects | X | X | Phabricator doesn't have the concept of product per bug, just project tags; each task can have multiple tags |
| Search issues in all modules | X | X | |
| Reply using email | X | X | |
| Dependencies between issues | - | X | |
| Private/confidential issues | (X) | X | The feature is available on github.com and will be available in GitHub Enterprise soonish. |
| Refer to users inline in comments | X | X | |
| Merge duplicate issues | - | X | |
| Custom issue creation forms | - | X | Phabricator allows creating ad hoc forms for different type of tasks |
| Add/remove custom fields | - | X | |
| Attach files to comments | X | X | |
| Inline attachment previews | X | X | |
| Export issues in JSON for local processing or migration | X | X | |
| Suggest existing issues | X | - | |
| ## Code review | |||
| Personal fork and pull request | X | - | |
| Upload diff file | - | X | |
| Per line comments | X | X | |
| Global diff view | X | X | |
| Autoclose on push through commit log | X | X | |
| Post-commit audit | X | X | Phabricator also allows assigning auditing/post-commit reviews to users |
| ## Tooling | |||
| REST API | X | X | |
| ## Other features | |||
| Built-in support for SSO | X | - | Phabricator has [no built-in support for SSO](https://discourse.phabricator-community.org/t/does-phabricator-support-logging-in-via-sso-using-saml-2-0/355). |
| Project pages | X | - | |
| Personal contributor overview pages | X | - | With Phab it's something you need to configure and set up: https://phacility.com/phabricator/dashboards/ |
( based on Gnome's comparison )
- Phabricator plugin for Jenkins hasn't been updated for almost 2 years according to this community post.
- Harbormaster is the CI tool in Phabricator but their own user guide calls out that "Harbormaster is not a mature application." along with a list of limitations. Haskell has also reported Harbormaster breaking.
- Phabricator uses a
pre-commitworkflow, where the reviews are done before the commit is pulled into the repo. Basically, they stay as change sets until approved. GitHub ispost-commitby default, where the commits are already part of the history and simply tied to a branch when merged.
- Mercurial is a distributed version control system very similar to Git.
- While Mercurial may be easier at first because it offers more low-level commands, users must edit the mercurial config file to activate the advanced features they like.
- Mercurial's UX kind of similar to SVN, Git's UX is completely different which causes a steeper learning curve.
Phabricator automatically assigns Group Reviewers to a PR, I don't know there must be a config of some sort probably using file path, do we have something similar in Github?
Anyone can review the PR from Group Reviewers and unblock it.