On Thu, 19 Jul 2012 11:58:54 -0700, Erik Moeller <[email protected]>
wrote:
On Tue, Jul 17, 2012 at 5:41 PM, Rob Lanphier <[email protected]>
wrote:
It would appear from reading this page that the only alternative to
Gerrit that has a serious following is GitHub. Is that the case?
Personally, it seems like Phabricator or Barkeep has the best chance
of dislodging Gerrit, but those won't probably get serious
consideration without a champion pushing them.
What are people's experiences with Gitorious? Does it seem
sufficiently hackable to perhaps meet our needs, or does it have too
many architectural flaws to be worthwhile?
Gitorious does pubkey management on it's own. Something that we already do
and don't want the tool to do (ie: we're trying to get rid of the fact
that you have to add your key to Gerrit too).
It also needs to have LDAP integration written.
The ops guys hate ruby.
Here are a few things I've been able to find out from poking at it:
* Unlike GitHub, it's fully open source (AGPL).
* It's a Ruby on Rails codebase with lots of gem dependencies and a
reputation for being hard to install (haven't tried it).
* Like GitHub/Gerrit, it's not just a code review tool, but also
manages repositories.
Gerrit doesn't really manage repositories much. Admins can create them,
but it's really nothing like GitHub/Gitorious for managing them.
Gerrit is a code review tool. GitHub/Gitorious are not.
Though GitHub's does have a nice pull requests have come very far and are
close to code review.
Last I checked Gitorious doesn't have anything that close.
* Like GitHub, it makes it easy to clone/fork entire repos and send a
merge request for a series of commits, encouraging true decentralized
development.
* It supports both individual clones and team clones.
* Like most tools, it supports inline comments in code review:
http://blog.gitorious.org/2009/11/06/awesome-code-review/
* Unlike Gerrit, it conveniently shows all diffs for a commit on a
single page, e.g.:
https://gitorious.org/gitorious/mainline/merge_requests/208
* Unlike GitHub/Gerrit, it has no easy way to integrate merge requests
-- developers have to do so manually using git commands (see the "how
to apply this merge request" box in the page above). The process seems
particularly cumbersome for small patchsets, of which we get a lot.
* It appears to have limited private repo support:
http://blog.gitorious.org/2012/02/29/private-repositories-2/
* It has a semi-active upstream: https://gitorious.org/gitorious/mainline
* Its UI appears less clunky and vomit-inducing than Gerrit's, but it
doesn't exactly feel like the most responsive & efficient design
either. There are some niceties, like breadcrumb navigation, avatars,
etc.
From what I can tell, we have essentially three choices:
* Continue to work with the heavily centralized and clunky Gerrit
workflow, and try to beat it into shape to not cause us too much pain,
while seeing people increasingly move into GitHub for doing
experimental projects. Hope for Gerrit's large developer base to
ultimately join a rewrite effort, or to incrementally make it better.
Build Gerrit/GitHub bridges if possible.
* Drink the kool-aid and join the wonderful semi-open world of GitHub,
with all the risks and benefits it entails.
* Help build a realistic alternative to GitHub, probably by building
on the open source toolset that's the closest right now in terms of
its overall architectural approach and existing functionality. (My
impression: Gitorious is closer in functionality but at a lower
overall quality, Phabricator/Barkeep are much more limited in
functionality right now and therefore would take a long time to be
usable with our current workflow assumptions.)
Erik
--
~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://daniel.friesen.name]
_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l