<p><pre><code> > Once a code review is accepted, the feature branch is rebased on the
> development branch (“git rebase development”). After any conflicts are
> resolved, the feature branch is merged into development (“git checkout
> development; git merge feature_branch_name”). The nice thing about using
> Phabricator is that this rebase/merge combo can be executed with a simple
> “arc land” command.
</code></pre>
One interesting note is that Phabricator has moved away from using only
rebasing by default for landing git branches. See this commit (
<a href="https://secure.phabricator.com/D4080" rel="nofollow">https://secure.phabricator.com/D4080</a> ) for the full story, but now Phabricator
lets your dev team use `git merge` while developing feature branches. When you
run `arc land`, your master is merged in to your feature branch (forcing you to
resolve all conflicts) and then your feature branch is squash-merged in to
master. If your developers like to collaborate on the same branch (pushing and
pulling from the same remote,) not having to worry about rebasing is nice. At
the end, phabricator turns all of your intermediary steps into one commit
anyway so who cares what's going on before then?
I was thinking about this article in a meta sense. Why was it written? From my perspective there is nothing special about their process. Then it dawned on me: Payroll is critical business software. When I think of a startup, I think of a couple of guys who built something in their garage with a lot of comments that look like this:
//TODO fix this later
//Major hack, but seems to work for now<p>In that sense, the word "startup" is a stigma for a company that is trying to create an impression of a stable, reliable, responsible business. Then I noticed this:<p><i>We’re building our company to last 50 years or more, and we want our code to last just as long.</i><p>It's so over the top. Writing code that will still be used in 50 years would be more of an exercise in predicting the future than writing the code itself. None the less, it fits the same narrative. It's all a branding play to show that they are a stable, reliable, responsible company. (not a move fast and break things kind of startup that we've all been hearing about)
<i>Don’t optimize for the short-term.</i><p>How on earth can you possibly succeed as a startup without a monthly pivot and MVP?<p><i>The name of this test server is Leeroy, who does all this with the help of Jenkins.</i><p>Leeroy Jenkins! Your test server is step 7 of a 10 step well-thought out workflow - kinda violating the spirit of your test server's name, no?