[vtk-developers] gitlab vs github?

Ben Boeckel ben.boeckel at kitware.com
Fri Oct 13 10:16:35 EDT 2017


On Fri, Oct 13, 2017 at 09:10:39 +0000, Heiland, Randy wrote:
> Sorry to be annoying with this question, for which there’s plenty of
> answers online, but I just wanted to get the opinion of a group of
> devs that I highly respect. Why did you go with GitLab? And apologies
> if you’ve discussed this before. I tried searching your markmail for a
> thread...

Having used both for a while now, the benefits of Gitlab over Github
include (not in any specific order and all are IMO):

  - Code review is *way* better on Gitlab. Github closes conversations
    on code automatically when the code has been changed. Gitlab leaves
    it open to be manually marked so that even if the code changed, the
    conversation is still visible until someone says "yes, this was
    actually fixed";
  - Off-code conversations can be marked as "resolved" so as not to
    pollute the comment thread once something is figured out.
  - MRs have a separate "merged" status unstead of all of them being
    either "open" or "closed".
  - We use server-side hooks to prevent pushing development topics
    directly to the main repository (which get copied over to clones and
    usually never cleaned up).
  - We can have different subgroups for projects rather than everything
    being under a single "Kitware" org (or split among a dozen
    organizations).
  - Gitlab is open source (and we've contributed fixes and improvements
    back). I'm still waiting to see movement on about a dozen feature
    requests and bug reports to Github (and these are issues serious
    enough that we'd probably look at fixing them given the chance).
  - Code update links work better in Gitlab than Github (though Github
    is getting better here, it is still sub-par).
  - Notifications are cleared on comment or manual action rather than
    "you viewed the page; you must have completed what you were there to
    do".
  - Merge requests can be disabled (for non-code repositories).
  - The API is much better suited for our workflow robots (Github has
    some…odd idiosyncrasies I'd like to see fixed; maybe GraphQL will
    help there). Gitlab has some oddities too, but they're much more
    manageable.
  - Private projects are free.
  - Separate issue and MR namespaces. Migrating our old issue tracker
    kept the issue numbers the same. Doing the same on Github is
    probably not possible (we deleted issues which weren't part of the
    target project rather than just closing them).
  - Multiple issue/MR templates available (not that this is used widely
    in our projects yet).

Github has "submit all these comments at once", but I don't think that's
worth giving up resolvable discussions on its own, never mind the rest
of the list. The network is better there too, but Gitlab allows signing
in with your Github account, so it isn't even a new login (unless you
want it to be).

We also have projects which can't be hosted elsewhere (not even private
projects is a solution there) for various reasons, so we'd have an
internal code hosting repository *anyways* even if the FOSS stuff moved
to Github.

--Ben


More information about the vtk-developers mailing list