May 13, 2013

Phabricator

Git at Scale
Version Control

Looking for a nice code review and project management system to complement your Git Fusion installation? Have a look at Phabricator, an open source package originally developed at Facebook. It has code review, wiki, repository browsing, tickets, and a lot of other tools. It supports Git Fusion repositories with just a bit of simple configuration - naturally, since Git Fusion repositories just look like any other Git repositories.

Configuration

The Phabricator documentation covers the configuration process for Git repositories pretty well:

There were just a couple of wrinkles for configuring Phabricator to authenticate with Git Fusion for repo browsing. Here are the steps I followed:

Configure the repository in Diffusion

Most of the configuration is straightforward in Phabricator's administration console. In the Remote URI section just enter the normal Git Fusion repository URL. Do not enter any SSH authentication credentials in this block.

diffusion config

Add a Git Fusion account for Phabricator to use

This account will be used for repository browsing. You can follow the normal Git Fusion procedures for creating this account and setting up SSH keys for Git Fusion authentication.

Establish Git Fusion authentication on the Phabricator server

Phabricator is going to authenticate with Git Fusion using the account that you made in the previous step. So on the Phabricator server you need to do two things:

  • Set the Git configurables user.name and user.email that Git Fusion uses to identify the account
  • Install the account's SSH key for the operating system account that runs Phabricator.

That's it!

Show me!

Here are some screenshots of Phabricator in action against a Git Fusion repo.

phabricator review

Phabricator code review

phabricator browser

Phabricator repository browser - note the branch graph

And now for the caveats:

  • I've only tried the two Phabricator tools that I'd most commonly want to use with a repository, the repo browser and the code review tool. I'm assuming the rest of Phabricator will just work to the extent that it normally supports Git.
  • Phabricator uses one account to browse a Git Fusion repository. Keep this in mind if you have stringent access control rules: only the permissions for that account will govern what people see.
  • Phabricator doesn't support Perforce, only Git Fusion.
  • Phabricator isn't as tightly integrated into the development workflow as tools like Gerrit. If you want a code review tool that hooks more tightly into Git Fusion and Perforce, stay tuned - we'll have news for you this summer!

Give it a try

If you try Phabricator with Git Fusion, please drop us a line and let us know how it goes!