- Die webbasierten Services für Version Control Hosting erleichtern die Teamarbeit bei der Softwareentwicklung durch ihre optimierten Benutzeroberflächen.
- Viele der Tools bieten neben der Versionsverwaltung weitere Funktionen und Schnittstellen für ein vollständiges Projektmanagement.
- Das Anmieten eines Hosters für Ihre Repository-Verwaltung gewährt Ihnen mehr Datensicherheit und ist mit weniger Aufwand verbunden als bei einer Installation auf dem eigenen Server.
Was ist Versionsverwaltung?
“Wer hat wann was gemacht und warum?” Einfach ausgedrückt beantwortet Ihnen ein Versionskontrollsystem genau diese Fragen. Ziel der Versionsverwaltung ist es, Ihnen die Bearbeitung von Dateien im Team zu ermöglichen. Besonders bei der Entwicklung von Softwareprojekten, an denen mehrere Programmierer gleichzeitig arbeiten, ist die Verwaltung der Codes unabdingbar, um dessen Evolutionsprozess nachvollziehbar abzubilden. Um das zu gewährleisten, historisiert das System jede Änderung (= Version) die Ihre Programmierer an einer Datei bzw. Software vollziehen. Tritt bei einem Test Ihrer Software ein Problem auf, so kann die Fehlerquelle - inklusive Zeitstempel und Benutzerkennung - schnell erkannt und behoben werden. Umgekehrt besteht ebenso die Möglichkeit, einen älteren Zustand der Software wiederherzustellen. Das Versionskontrollsystem trägt somit step by step zur Optimierung Ihres Softwareprojekts bei.
Wie funktioniert Versionsverwaltung?
Was ist ein Repository?
Das Repository ist das Herzstück der Versionsverwaltung: es handelt sich um ein Archiv in dem alle Änderungen an einer Datei samt dazugehöriger Daten hinterlegt werden.
Wenn mehrere Personen parallel an gemeinsamen Dateien mit verschiedenen Entwicklungszweigen arbeiten besteht oft die Gefahr, dass versehentlich Informationen gelöscht werden. Um dies zu verhindern versioniert das System die Quelltexte und protokolliert jede Änderung. Für die fehlerfreie Koordinierung der Änderungen gibt es bei den Versionsverwaltungs-Systemen verschiedene Ansätze:
- Bei der zentralen Versionsverwaltung - wie zum Beispiel SVN - werden die Dokumente über ein zentrales Repository verwaltet, auf das alle Nutzer Zugriff haben. Das gemeinsame Repository liegt auf einem zentralen Server. Jeder User besitzt außerdem ein lokales Arbeitsverzeichnis (Working Directory) deren Inhalte in das Repository kopiert werden. Die Änderungshistorie ist nur im Repository vollständig und enthält stets die neueste Version des jeweiligen Projektes.
- In dem Modell der verteilten Versionsverwaltung - wie zum Beispiel Git - verläuft die Verwaltung über mehrere verteilte Repositorys, die sowohl auf dem lokalen Rechner als auch auf dem Server liegen. Jeder User hat sein eigenes Working Directory und ein eigenes Repository in dem gearbeitet wird. Dadurch sind die jeweiligen Änderungen an einer Datei nicht gleich für alle ersichtlich. Die Arbeitskopien enthalten bei diesem Modell stets die komplette Änderungshistorie.
Versionsverwaltungssystem vs. Versionsverwaltungs-Hosting-Software
Aufgepasst: Die Begrifflichkeiten Versionsverwaltungssystem und Versionsverwaltungs-Hosting-Software sind sich sehr ähnlich, weshalb die Unterscheidung zwischen den beiden Kategorien oft schwer fallen mag. Es handelt sich aber um zwei eigenständige Programme.
- Das Versionskontrollsystem ist das Tool und bildet die Grundfunktionalität der Repository-Verwaltung ab.
- Das Hosting ist der Online-Service, der die Oberfläche für Projekte stellt, die das jeweilige Versionsverwaltungs-Tool einsetzen möchten. Es ist oft mit weiteren ergänzenden Integrationsmöglichkeiten und Funktionalitäten ausgestattet.
Dies sind einige Namen der gängigen Versionsverwaltunssysteme. Sie sind nicht mit den unten genannten Hosting-Anbietern zu verwechseln:
- Git
- Subversion (SVN)
- Mercurial
- Bazaar
- Monotone
- Perforce
- Fossil
- Darcs
- BitKeeper
Wofür benötigen Sie eine Versionsverwaltungs-Hosting-Software?
Vorallem in der Softwareentwicklung ist das Management von Code-Versionierung unabdinglich. Aber auch in Büroanwendungen und in Content-Management-Systemen kommt Versionsverwaltung für Codes und andere Dateiformate zum Einsatz. Viele Programmierer wissen bereits, mit welcher Variante der Versionsverwaltung (ob zentral oder verteilt) sie vorzugsweise arbeiten und brauchen daher nur noch den richtigen Hosting-Dienst mit einer passenden Schnittstelle zum Versionierungstool. Sie haben zwar die Alternative, Ihr Tool auf dem eigenen Server zu hosten, die Installation über einen webbasierten Hoster ist jedoch deutlich sicherer und mit weniger administrativem Aufwand verbunden. Die Online-Repository-Hosting-Services bieten Ihnen neben der graphischen Oberfläche für Ihre Versionsverwaltung oft zusätzliche Funktionen im Projektmanagement-Bereich. Im trusted.de Vergleich finden Sie eine Auswahl der bekanntesten Hosting-Anbieter für Versionskontrolle.
Viele Repository-Hosting-Softwares bieten Ihnen eine kostenlose Oberfläche für Ihre Codeverwaltung. Besonders wenn Sie Ihre Open-Source-Projekte öffentlich verwalten möchten ist dies eine ideale Lösung. Für die Verwaltung sensibler Daten in privaten Repositorys muss man meistens jedoch auf das kostenpflichtige Angebot der Hosting-Anbieter zurückgreifen.
Die wichtigsten Funktionen im Überblick
GUI
Die Hauptfunktion der online-Hostingdienste ist die graphische Visualisierung der Repositorys und der jeweiligen Funktionen des Versionskontrollsystems: Also der Historisierung und Dokumentation der Datenänderungen.
Code Review
Die gemeinsame Bearbeitung der Entwicklungszweige wird im Besonderen durch Pull Requests erleichtert. Das Pull Request initiiert einen Austausch über die geplanten Änderung am Branch. Sie können sowohl Kommentare zu ganzen Commits als auch zu einzelnen Codezeilen hinterlassen. Somit können weitere Commits hinzugefügt werden bevor der Entwicklungszweig gemerged wird. Es besteht auch die Möglichkeit zwei oder mehrere Branches gegenüber zu stellen. Der Vergleich zeigt eine Übersicht aller besonderen Änderungen, die repräsentativ für die Commits sind und Ihre Funktion herausstellen.
Team Management
Wenn Sie ein Team erstellen können Sie die Zugriffsrechte einzelner Personen oder Gruppen festlegen. So können sich zum Beispiel die Entwickler-, Design- und Marketing-Gruppe innerhalb eines Repository-Teams austauschen, sie haben aber unterschiedliche Zugangs- und Bearbeitungsberechtigungen zu den Daten.
Mobile App
Mit der mobilen Ansicht Ihrer Codes ermöglichen Ihnen manche Anbieter durch intuitive Benutzeroberflächen Ihre Projekte sogar von unterwegs im Blick zu behalten und zu bearbeiten.
Schnittstellen
Für die Integration weiterer Online-Tools bieten die Hoster oft zahlreiche Zusatzfunktionen. Nicht nur die Versionskontrolle wird dadurch optimiert. Oft bilden die Programme mit Ihrem gesamten Integrationsangebot vollwertige Projektmanagement-Systeme ab.
- Release Management
- Issue Tracking
- Bug Tracking
- Mailing Lists
- Wiki
Version Control Hosting Software im Vergleich
- Github
- Bitbucket
- Gitlab
- FogBugz
- Beanstalk
- Sourceforge
- Assembla
- Allura
- Codebase
- Codeplex
- Phabricator
- RhodeCode
Auf was sollten Sie bei der Auswahl eines Anbieters achten?
Bevor Sie sich für einen willkürlichen Hosting-Anbieter entscheiden, lohnt sich der sorgfältige Vergleich des durchaus variierenden und vielseitigen Software-Angebotes.
- Vorallem muss die Software die Integration Ihres Versionskontrollsystems unterstützen. Manche Provider bieten gleich mehrere Schnittstellen zu den verschiedenen Versionsverwaltungs-Formen.
- Sie sollten sich über den Umfang Ihrer Businesspläne und die Größe Ihrer Softwareprojekte im klaren sein bevor Sie eine Entscheidung für oder gegen einen der Anbieter treffen. Die Nutzeranzahl und Speicherkapazität ist teilweise begrenzt oder an Zusatzkosten gebunden.
- Auch Ihre Datensicherheit ist von oberster Priorität, weshalb das Tool definitiv eine Funktion für die individuelle Zugriffsberechtigung haben sollte.
- Ebenfalls von großer Bedeutung sind die vorhandenen Funktionen zur Förderung der Team-Kollaboration. Bei der gemeinschaftlichen Entwicklung von Softwareprojekten ist ein effizienter Austausch unter den beteiligten Programmierern essentiell wichtig um Systemfehler zu vermeiden.
Viele der webbasierten Hosting-Dienste bieten neben der Integration für Ihr Versionsmanagement zahlreiche andere Schnittstellen zu Online-Tools die Sie eventuell bereits in Ihrem Unternehmen einsetzen. So ergeben sich flexible Kombinationsmöglichkeiten, die Ihrem Team die Arbeit mit der neuen Oberfläche erleichtern.
Das kosten Version Control Hosting Systeme
Viele der Hosting-Systeme bieten ihren Versionskontroll-Service kostenlos an - sofern Sie Ihre Repositorys öffentlich verwalten möchten. Für Open-Source-Projekte braucht Sie das Versionsverwaltungs-Hosting nichts zu kosten. Für private Repositorys verlangen die Anbieter meist einen monatlichen Beitrag. Die Kosten variieren zwischen neun und 200 Dollar pro Monat und sind meist abhängig von Speicherkapazität und Anzahl der User. Für die Verwaltung empfindlicher Daten sollten Sie stets mit privaten Repositorys arbeiten! Auch für Startups mit kleineren Projekten gibt es hier durchaus günstige Angebote.
Fazit
Coding funktioniert heutzutage nicht ohne Versionsverwaltung. Und Versionsverwaltung funktioniert nicht ohne eine passende Arbeitsplattform, die Ihrem Programmier-Team optimale Zusammenarbeit gewährleistet. Ob Sie sich für eines der Leader-Produkte auf dem Markt entscheiden oder doch einen Nischenanbieter für Ihr Versionsmanagement wählen, ist Ihnen überlassen. Für jedes Projekt und Budget egal welcher Größe ist ein passender Hosting-Anbieter dabei. Nehmen Sie sich die Zeit das umfangreiche Funktionsangebot der online-Dienste zu vergleichen, dann steht dem fehlerfreien Coding und Ihren zukünftigen Softwareprojekten nichts mehr im Wege.