382 karma · joined January 19, 2015
[0] http://paulhammant.com/2013/12/04/what_is_your_branching_mod...
[0] https://hackerone.com/reports/88395, https://secure.phabricator.com/T9408
Definitely check it out if you're looking for hosted or self-hosted alternatives to GitHub/GitLab/BitBucket, especially if you use Mercurial (or SVN).
>This isn’t a scaled-back version of Phabricator. We only build one version, and that version is free, open, and built to scale. There are no special keys or licenses needed. No community or enterprise versions. Code quality and engineering efficiency is too important to us to split up features. When you’re ready to move off of the free tier and bring your whole company, you’re welcome to upgrade on Phacility, or take your data with you and host it locally. We’re glad to have you as a customer either way.
https://www.phacility.com/phabricator/
We've been using it for 2+ years at this point and glad we stuck with Mercurial.
http://paulhammant.com/2013/04/05/what-is-trunk-based-develo...
http://paulhammant.com/2014/09/29/shades-of-trunk-based-deve...
http://paulhammant.com/2013/12/04/what_is_your_branching_mod...
It seems like the rapid change and throw-away-ability of the tool ecosystem reflects the final product as well -- and maybe that's the large difference which is emergent from web technology? What is the average lifespan of a web application?
It's placing your own release cycle at the whims of your dependencies' release cycles. In the corporate world that would not be a viable solution.
When it's time to change pace one of the things I think helps "power down" is to let team members work on things they are interested in or find important. Instead of priorities coming from up high it lets their minds breathe and explore something on their own. The difficulty is in managing to find the time for it.
Ensure the specialized developer is doing due-diligence in defining and verifying the module works as intended and have others analyze its interactions in the larger system to prevent cascading failure, conforms to application norms, __is documented__, etc. Even if most others wouldn't understand the internals during review you will be taking steps to keep the risk localized. If the bus arrives and you lose the specialized developer then it's reasonable to assume another developer would need to spend nearly as much time to catch up on the research.
Otherwise you're responsible for making the decision to invest more developer time now in understanding the problem/implementation vs. later - a gamble at how much time until that developer leaves.
Taking over specialized/legacy code is part of the job. It can be painful but there are steps you can take to minimize that pain later.
hg addremove -s
Is there another way to indicate a rename?Homepage, http://phabricator.org/
Their self-hosted install (browse but they prefer that you don't create/test data on this install), https://secure.phabricator.com/
They have paid hosting as well, http://phacility.com/
1. Supports Mercurial - our repositories are currently in mercurial, and using any other tool would require switching to git (which we seriously considered while looking at tools).
2. Simple to maintain - if you have experience setting up other web applications based around LAMP, this is essentially very similar. The web interface even indicates setup issues to admins, from things which can cause issues to performance configurations in things such as MySQL and PHP.
3. The code review interface was more intuitive for myself and other engineers. From the command-line tool (Arcanist) to how it's conveyed to the user in the web interface. It did take a little time to fully comprehend and implement the process for using, but since implementing in Feb. of last year, after around 4 months we had near 100% adoption by the engineering department. The GitLab/GitHub interfaces I've found to not be organized intuitively -- the lifetime of an issue/changes seems (seemed?) more social-based and intermized where in Phabricator an Issue/Task is almost separate from the changes which can go into it, though they reference eachother easily.
>Also, do they pride themselves for writing this in PHP? I consider this an anti-feature, but this might be highly opinionated.
I had the same reaction at first (thought I wouldn't say it's pride?). In fact the first time I looked at Phabricator (~2012) I totally dismissed it for three reasons:
1. Written in PHP
2. Mentions pokemon on the front page
3. Marketed as "collection of open source web applications"
These led me to believe that it was at most some PHP glue some students hacked together to get different unrelated applications to play together. This conclusion is entirely wrong. I've since changed my mind about PHP - biased from earlier experiences there's no reason to think a reliable/stable application couldn't be built on it. Phabricator (I believe) started as an internal application at Facebook which has since become its own company. The code is very well organized (I've contributed some small changes), and there are some very bright people working on the project - I get the vibe that they genuinely want to solve the right problems rather than checking features off a list. There are very few dependencies on other libraries unless you specifically decide to enable extra features, and even then there's some support/documentation there to assist. Despite the light-hearted humor (see pokemon) that is a staple of the software (unless you enabled serious-business mode), the project is designed and developed by highly capable, quality professionals.
I couldn't have been happier going with Phabricator over GitLab.