On Aug 9, 2012, at 9:52 PM, Daniel Friesen wrote:
Why is arc written in PHP? That seems to be a horrible
software decision to me. Core extensions not enabled by default can be hard to install on
some OS. And imho the packaging setup is not as good. Frankly I gave up trying to get
mcrypt installed on either version of php installed on my Mac.
This kind of tool screams out to me as something perfectly suited for python. It's
pre-installed a lot of the time. IIRC most of the time you're not missing much you
need. And python comes with easy_install and better yet pip.
Please let us know when you run into specific problems. As far as I know, this hasn't
been a major pain point in practice (some minor pain on Windows, but I think Python would
be about as bad there).
arc is written in PHP because Phabricator is written in PHP, and we can reuse more code
more easily by having both the client and server in the same language. For example, the
code to parse raw diffs lives in Arcanist, but Phabricator uses the same code when it
needs to parse raw diffs (e.g., via copy and paste or from the VCS). In turn, Phabricator
is written in PHP because it grew on top of a PHP stack at Facebook.
But even before seeing this arc is related to the one
thing about phabricator that concerns me the most.
arc looks as if it works completely with patches on it's own rather than doing
anything with git.
ie: It looks as if it takes the actual source repo completely out of the story for patch
submission.
For pre-push review, the remote repository is completely out of the story, yes. However,
in pre-push review the changes aren't available in the remote, so I believe this is
the only reasonable architecture.
For post-push review in Phabricator (which does not use arc) the local is completely out
of the story.
I can't see how phabricator can have commit
workflow support any better than gerrit when it appears to take the repo completely out of
the question.
I'm not sure I understand this concern, can you give me an example of what you mean?
(e.g., what features does gerrit have that Phabricator can't?)
Evan