GitLab

Bei GitLab handelt es sich um eine Webanwendung, die der Versionsverwaltung von Softwareprojekten dient. Die Basis für GitLab ist Git. Entwickelt wurde GitLab im Jahr 2011 von Dimitri Saparoschez und Valery Sizov, die dabei auf die Hilfe von Ruby on Rails zurückgreifen konnten. 2014 gründete Saparoschez dann die Firma GitLab B.V., die ihren Sitz in Utrecht hat.

Allgemeine Informationen zum Thema

Ein Merkmal der GitLab Community Edition (CE) ist die Verwendung als Open-Source-Software, die unter der MIT-Lizenz entwickelt wird. Im August 2013 kam in Form der GitLab Inc. die sogenannte Enterprise-Edition (EE) hinzu, die sich durch zusätzliche Funktionen auszeichnet, die insbesondere auf Firmen zugeschnitten sind. GitLab kann sowohl auf eigener Software betrieben werden als auch als Software as a Service. Das Angebot von GitLab ist unterteilt in einen kostenlosen Service beim privaten und öffentlichen Hosting und einem kostenpflichtigen Support. Neben GitLab gibt es weitere Angebote wie etwa Bitbucket und GitHub[1].

Die meisten Versionskontrollsysteme speichern Informationen in Form einer Reihe von Änderungen an Dateien, also „Diffs“. Diese Systeme, die beispielsweise Subversion, CVS, Bazaar, Perforce und andere sein können, betrachten die durch sie verwalteten Informationen als eine Anzahl von Änderungen und Dateien.

Mit Git werden Daten anders wahrgenommen. Man kann sich das als immer wiederkehrende Snapshots vorstellen, also wie ein Mini-Dateisystem. Immer, wenn der aktuelle Status eines Softwareprojektes gespeichert wird, nimmt Git den Zustand aller Dateien und speichert eine Referenz dieses Snapshots. Damit diese Methode schnell und effizient ist, kopiert Git nicht etwa die Dateien, sondern erstellt eine Verknüpfung zur vorausgegangenen Version [2].

Gemeinsamkeiten von GitLab und GitHub

Sowohl das System GitHub wie auch GitLab beruhen auf der technischen Grundlage von Git. Zudem bieten beide Versionskontroll-Systeme cloud-basierte Umgebungen für Teams an und speichern auf einer zentralen Plattform die Informationen. Beide Systeme erlauben das Speichern, Teilen, Veröffentlichen und Testen von Sourcecodes. Ebenfalls gemeinsam ist GitLab und GitHub die Herangehensweise mittels Open Source-Software.

Vorteile von GitLab gegenüber GitHub

Da GitLab erst nach GitHub entwickelt wurde, konnten Fehler oder Nachteile des Systems behoben werden. Die Weiterentwicklungen führten zu einigen Verbesserungen von GitLab gegenüber GitHub:

1. GitLab bietet seinen Nutzern ein verbessertes Benutzerinterface, das es erlaubt, Projekte, Gruppen, Nutzer, Statistiken und Änderungen auf dem Desktop verwalten zu können.

2. Zum Angebot von GitLab gehören eine umfassende Wiki-basierte Dokumentation und das Issue-Tracking. Dadurch kann jede Form von Dateien eingebunden werden, die zum Beispiel zur Beschreibung von Fehlern wichtig sind.

3. Durch Code Snippets wird die Möglichkeit geschaffen, auch kleinste Code-Teile fein aufzulösen, ohne dass die Notwendigkeit besteht, das ganze Projekt zu kopieren.

4. GitLab hat verbesserte Sicherheitsfeatures integriert. So lassen sich Teile des Codes vor Veränderungen schützen, bestimmte Rechte lassen sich auf ausgewählte Benutzer übertragen und ein Projekt kann komplett nichtöffentlich laufen gelassen werden.

5. Auch die Verwaltung von Meilensteinen wurde optimiert. Dadurch lassen sich nicht nur individuelle Ziele festschreiben und tracken, sondern auch solche, die bestimmte Gruppen oder das Gesamtprojekt betreffen.

6. Wie weiter oben bereits angedeutet, setzt GitLab auf ein ausdifferenziertes Angebot, das sich aus GitLab Community Edition (CE), der Enterprise Edition (EE) und der gehosteten Version unter der Website GitLab.com zusammensetzt. (Neben der Gebühr für die Enterprise Edition (EE) fallen weitere Gebühren für umfangreiche Supportangebote an.)[3].

Die Vor- und Nachteile von GitLab und GitHub

Trotz der aufgezählten Vorteile punktet GitLab nicht in jeder Hinsicht gegenüber GitHub. Und beide Systeme bergen auch Nachteile in sich. Mittels einer direkten Gegenüberstellung soll ein Überblick geschaffen werden.

Vorteile GitHub

  • Hoher Bekanntheitsgrad und weltweite Verbreitung
  • Zahlreiche integrierte Anwendungen
  • Die vorhandenen Issues sind über mehrere Repositorys trackbar

Vorteile GitLab

  • Gute mobile Nutzbarkeit
  • Beinhaltet viele Statistiken zu Projekten
  • CI/CD-Tools sind kostenfrei eingebunden
  • Kann selbst gehostet werden
  • Verfügt über Container Registry zur Docker-Image-Verwaltung
  • Genau geregelte Rechteverwaltung

Demgegenüber stehen die Nachteile beider Systeme:

Nachteile GitHub

  • Lässt sich nicht kostenlos auf eigenen Servern hosten
  • Private Repositorys sind nur kostenpflichtig möglich
  • CI/CD sind nur durch Einbeziehung Dritter möglich

Nachteile GitLab

  • Server sind weniger stabil als bei GitHub
  • Insgesamt noch nicht so weit verbreitet, daher kann die Integration in andere Anwendungen problematisch werden
  • Issues sind nicht in mehreren Repositorys trackbar

Ein schlichtes „Schwarz oder Weiß“ gibt es nicht, wenn man beide Systeme (und weitere andere, die es ebenfalls gibt) miteinander vergleicht. Die Frage, ob GitLab, GitHub oder ein anderes System die richtige Wahl ist, kann also nur individuell beantwortet werden[4].

Bedeutung für das Development

Ohne Zweifel ist GitHub noch immer GitLab überlegen. Dennoch kann GitLab, sofern die Rahmenbedingungen und die Anforderungen an das System stimmen, eine gute Alternative darstellen. Zudem gibt es bereits Benefits und Features, die GitHub (noch) nicht bietet. Insgesamt kann man sagen, dass GitHub sich besonders für große Projekte eignet, während GitLab eher für kleinere Vorhaben gedacht ist. Sicher werden sich beide Systeme in Zukunft weiterentwickeln, und es bleibt abzuwarten, ob die Dauer von drei Jahren, die GitHub länger auf dem Markt ist, weiterhin einen gewissen funktionalen Abstand zwischen GitLab und GitHub beibehalten wird können[5].

Einzelnachweise

  1. GitLab de.wikipedia.org. Abgerufen am 14.03.2018
  2. Los gehts: Git Grundlagen git-scm.com. Abgerufen am 14.03.2018
  3. Gitlap vs Github: Ein Vergleich praxistipps.chip.de. Abgerufen am 14.03.2018
  4. Gitlap vs Github t3n.de. Abgerufen am 14.03.2018
  5. Gitlab vs Github: Unterschiede und Gemeinsamkeiten im Vergleich usernap.com. Abgerufen am 14.03.2018

Weblinks