GitLab/Phabricator Feature Matrix
This page provides a feature comparison between GitLab and Phabricator. It is important to recognize that comparison on features alone is not a good evaluation of each technology - this is only one aspect to take into account.
Feature |
GitLab |
Phabricator |
Notes |
Code hosting |
|||
UI for adding/removing files |
|
|
|
UI for editing files & committing |
|
|
|
Preview README markdown files |
|
|
|
Image previews |
|
|
|
Browse or download file tree for each Git tag |
|
|
|
Add release notes to Git tags |
|
|
|
Attach files (such as tarballs) to Git tags |
|
|
|
UI to create branches |
|
|
|
Branch comparison tool |
|
|
GitLab 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 |
|
|
|
Organize repos into groups |
|
|
|
Download repo's files at any point in history (like git archive) |
|
|
|
Visual Git blame |
|
|
Phabricator only shows the commit hash; GitLab shows author and commit summary |
Download RAW file |
|
|
|
Public RAW URLs |
|
|
Phabricator has opaques URLs for RAW files |
Fine grained access control |
|
|
|
Temporary access control |
|
|
In GitLab you can grant access to user/groups with expiry date |
Per-project code search |
|
|
Phabricator only offers search by commit message and file names |
Global code search |
|
|
This is an EE only feature in GitLab; We can workaround this by using the GitHub mirror |
Repo activity charts |
|
|
|
Issues |
|||
Milestones/deadlines |
|
|
Phabricator can define milestones using tags, and has a Countdown plugin for date-based deadlines |
Freeform tags |
|
|
Phabricator supports this through custom fields, controlled by the sysadmin; or project tags |
Subscribe to issues |
|
|
|
Assign issue to a Git project |
|
|
Phabricator assigns tasks to tags, so each Git project needs a tag (though tags do not necessarily map to repositories) |
Reassign issues between projects |
|
|
Phabricator doesn't have the concept of product per bug, just project tags; each task can have multiple tags |
Search issues in all modules |
|
|
|
Reply using email |
|
|
|
Dependencies between issues |
|
|
Gitlab issue: https://gitlab.com/gitlab-org/gitlab-ee/issues/2035 |
Private/confidential issues |
|
|
|
Refer to users inline in comments |
|
|
|
Merge duplicate tasks |
|
|
Gitlab issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/26372 |
Custom issue creation forms |
|
|
Phabricator allows creating ad hoc forms for different type of tasks |
Add/remove custom fields |
|
|
|
Attach files to comments |
|
|
|
Inline attachment previews |
|
|
|
DnD for reordering issues |
|
|
https://about.gitlab.com/2017/03/22/gitlab-9-0-released/#reorder-issues-in-board-list-ce-ee |
Export issues in CVS/JSON for local processing or migration |
|
|
|
Fast-forward commit vs branch merge |
|
|
In GitLab fast-forward is a EE option only. However, we have been discussing this with them and it is possible that the feature could be migrated to CE. |
Suggest existing issues |
|
|
Bugzilla will suggest possible existing bugs when you are adding a new one. Not supported by Phab. |
Code review |
|||
Personal fork and merge request |
|
||
Upload diff file |
|
||
Per line comments |
|
||
Global diff view |
|
||
Autoclose on push through commit log |
|
||
Post-commit audit |
Phabricator also allows assigning auditing/post-commit reviews to users |
||
Tooling |
|||
REST API |
|
|
|
Android+iOS client |
|
|
Phabricator has specific mobile web UI |
CLI |
|
|
GitLab's are community based. Phabricator has an official tool (Archanist); however the community git-phab might be a better option. |
Python API |
|
|
|
Other features |
|||
Project pages (similar to GitHub io pages) |
|
|
GitLab: https://pages.gitlab.io/ |
Personal contributor overview pages |
|
|
With Phab it's something you need to configure and set up: https://phacility.com/phabricator/dashboards/ |
Continuous integration |
|
|
|
Design review |
|
|
|
Automated global and personal filter rules (Herald) |
|
|