This week we’ve made the move from Subversion to Git primarily due to Git’s nice merging tools. While we were making this change we decided that now was a good time to start using Phabricator alongside Git on a separate Amazon EC2 instance. Now have our own dedicated micro EC2 repository server which is running Phabricator and Git. Simples.
“So what is Phabricator?” I hear you ask
Phabricator is “a suite of web applications that help software companies communicate about software effectively” according to their website and that is exactly what it does. It was created by Facebook (and kindly open-sourced by them) as a tool to help their developers manage, review and audit the ever increasing code-base that helps to make the social network the largest in the world. Interestingly its main developer, Evan Priestley, has since left Facebook and now works on Phabricator full-time.
One of the key features on Phabricator is Differential, a code review system. Reviewing code is very different from auditing code. When you review code this happens before it is pushed on to the repository. This reduces the chances of conflicts happening in code and also reduces the number of updates to the working code base. We are actually yet to use this during production, but I am sure it will be used when larger pieces of code are added on the system. It is also a great tool for new developers.
Diffusion is Phabricator’s code viewing and diff platform. This is really clean, and essential for teams with multiple developers. It suddenly becomes very simple to see who has changed what in your code.
Differential also plugs-in to the audit functionality and obviously has a comment/explanation system.
Bug tracking and task management is key to development. Developers need to know what they are doing and fixing bugs is key. No one likes buggy code, not developers and certainly not users.
The Reasons We Use It
It’s new and hip… No, but seriously it is a brand new tool for teams that is progressing quickly and has the might of Evan Priestley to help it develop into the future. The guy left Facebook to work on this project (one would assume?) so he must have some big plans to push it forward. We hope so anyway but even in its current form it is an excellent tool.
The most interesting feature is Differential which we are yet to use (but plan to). This could be extremely handy when taking on new employees who have to dive in to your already complex code-base. Differential could possibly help collaborative work on complex coding problems so a developer can have others review their code and make comments on it. After all two minds are greater than one.