Versionskontrollsoftware für professionelle Teams
Bitbucket unterstützt Versionskontrolllösungen für Git.
Was ist ein Versionskontrollsystem?
Ein Versionskontrollsystem oder VCS (Version Control System), auch Revisionskontroll- oder Quellcodeverwaltungssystem genannt, ist ein Softwareprogramm, das Änderungen an einem Dateisystem verfolgt und verwaltet. Ein VCS bietet außerdem Funktionen zur Zusammenarbeit, mit denen VCS-Benutzer diese Änderungen an Dateisystemen untereinander teilen und integrieren können. Auf Dateisystemebene verfolgt ein VCS das Hinzufügen, Löschen und Bearbeiten von Dateien und Verzeichnissen. Ein Repository ist ein VCS-spezifischer Ausdruck für das Verfolgen eines Dateisystems mit einem VCS. Bei einzelnen Quellcodedateien verfolgt das VCS das Hinzufügen, Löschen und Bearbeiten von Textzeilen innerhalb der Datei. Beliebte VCS-Lösungen in der Softwarebranche sind etwa Git, Mercurial, SVN und Perforce.
Wozu brauche ich ein Versionskontrollsystem?
Ein VCS ist ein sehr wertvolles Tool, das viele Vorteile für den Workflow in Softwareteams bietet. Wenn mehr als ein Entwickler die Quellcodedateien eines Softwareprojekts betreut, ist ein VCS absolut ratsam. Aber auch Projekte mit nur einem Maintainer profitieren sehr von einem VCS. Es sprechen wohl keine stichhaltigen Gründe dagegen, ein VCS in modernen Softwareentwicklungsprojekten zu verwenden.
Lösung des Konflikts
Im Lebenszyklus eines kooperativen Softwareprojekts ist es höchst wahrscheinlich, dass verschiedene Teammitglieder dieselbe Quellcodedatei zur selben Zeit bearbeiten müssen. Bei Konflikten zwischen Entwicklern ist ein VCS hilfreich und ermöglicht das Verfolgen von Änderungen. Aus diesen Vorgängen zur Konfliktlösung wird ein Audit-Trail erstellt, der Einblicke in den Projektverlauf gewährt.
Rollback und Rückgängigmachen von Quellcode-Änderungen
Sobald ein VCS mit dem Verfolgen eines Quellcodedateisystems begonnen hat, wird ein Verlauf angelegt, der die Änderungen und den Zustand des Quellcodes während des gesamten Projektverlaufs aufzeichnet. Dadurch ist ein "Rückgängigmachen" oder Rollback des Quellcodeprojekts zum letzten bekannten Status möglich. Falls du bei einer Anwendung in der Produktion ein Bug entdeckst, kannst du den Code also schnell auf die letzte stabile Version zurücksetzen.
Offsite-Backup des Quellcodes
Wenn du ein VCS im Team gemeinsam nutzt, musst du zum Austausch der Änderungen zwischen den einzelnen Entwicklern eine Remote-Instanz des VCS erstellen. Diese Instanz kannst du bei einem bewährten Drittanbieter wie etwa Bitbucket hosten. Erst dann ist dein Offsite-Backup sicher. Falls du Pech hast und dein Laptop gestohlen wird, ist in der Remote-Instanz des VCS weiterhin eine Kopie des Quellcodes verfügbar.
VERTEILT
ZENTRALISIERT
Bei VCS-Tools unterscheidet man im Wesentlichen zwei Remote-Architekturen:zentralisierte und verteilte Systeme.
Wenn wir die Vor- und Nachteile der beiden Architekturen abwägen, ist das Offsite-Backup-Feature ein wichtiger Aspekt. Ein zentralisiertes VCS hat einen Single Point of Failure, nämlich die zentrale Remote-Instanz des VCS. Ein Ausfall dieser Instanz kann zu Produktivitätseinbußen und Datenverlusten führen. Außerdem muss sie durch eine Kopie des Quellcodes ersetzt werden. Wenn die Instanz zeitweise nicht verfügbar ist, können Entwickler keinen Code mehr pushen oder mergen und auch kein Rollback durchführen. Mit einer verteilten Architektur hingegen kannst du diese Fallstricke vermeiden, indem du auf jeder VCS-Instanz eine vollständige Kopie des Quellcodes hinterlegst. Wenn eines der zuvor genannten Fehlerszenarien bei einem verteilten System auftritt, kann eine andere VCS-Instanz in der Hauptentwicklung einspringen, um schwerwiegende Produktivitätsverluste zu minimieren.
Die Vorteile von Versionskontrollsystemen
Wenn du ein VCS in ein Softwareentwicklungsprojekt integrierst, eröffnen sich für dein Unternehmen und deine Verwaltung zahlreiche Vorteile. Standardmäßig bietet ein VCS die bereits erwähnten technischen Vorteile der Konfliktlösung für Teams und der unterstützten Zusammenarbeit. Ein gehosteter VCS-Service umfasst ein Standard-VCS und erweitert es um zusätzliche Features. Dieses "erweiterte VCS" ist unglaublich leistungsfähig und ermöglicht dir einen transparenten Einblick in den Softwareentwicklungsprozess, der für gewöhnlich ein undurchsichtiges, kreatives Unterfangen ist. Im Folgenden stellen wir dir die grundlegenden Vorteile eines gehosteten VCS vor.
Erweiterte Integrationen von Drittanbietern
Ein VCS kann durch Integration einer sicheren, bei einem Drittanbieter gehosteten Lösung wie Bitbucket zusätzlich erweitert werden. Ein gehostetes VCS bietet dir seine eigenen Erweiterungen für weitere Anwendungen und Services, die du über Integrationen wie den Atlassian Marketplace erhältst. Zum Beispiel kannst du bei einem mit Bitbucket gehosteten VCS die VCS-Daten mit der Jira Software zur Aufgabenverfolgung sowie der Wissens- und Dokumentationsplattform Confluence austauschen. Damit ist die Fülle an Integrationen für gehostete VCS aber noch lange nicht erschöpft.
Teamkommunikation
Ein gehostetes VCS bietet dir erweiterte Messaging- und forenähnliche Kommunikationstools, die eine wertvolle Unterstützung für die Teamarbeit sein können. Mit diesen Messaging-Tools kannst du den Quellcode Zeile für Zeile in einer übersichtlichen Gliederung besprechen. Aber auch für teamübergreifende Diskussionen zu allgemeinen Geschäftszielen, die die Quellcodeentwicklung betreffen, sind die Messaging-Tools außerordentlich wertvoll.
Einblicke, Messungen und Überprüfbarkeit
Ein entwicklerbasiertes Unternehmen kann ein gehostetes VCS einsetzen, um Key Performance Indicators (KPIs) zu verfolgen und zu messen. Ein gehostetes VCS ermöglicht Einblicke in die Geschwindigkeit und Effizienz eines Softwareentwicklungsprojekts. Mit den Tools eines gehosteten VCS kannst du unter anderem messen, wie viele neue Features bereitgestellt wurden, wie schnell die Codeerstellung vorangeht, wie lange die Entwicklung schon dauert und wie viele Bugs erstellt und behoben wurden.
Automatisierung der CI/CD-Pipeline
Externe Integrationen für gehostete VCS können dich beim Aufbau von Continuous Delivery-Workflows unterstützen. Bearbeiteten Quellcode können Entwickler per Transaktion in die größere Codebasis integrieren. Währenddessen kann das gehostete VCS mit vielen Erweiterungen konfiguriert werden, die den Code-Review und den Auslieferungsprozess verbessern. Automatisierte Builds, Tests, Deployments und mehr kannst du in einer einfachen, als Code konfigurierbaren YAML-Datei orchestrieren.
Erfahre mehr über Versionskontrolle
Alle genannten Features zur Versionskontrolle sind bequem in Bitbucket verfügbar.
Versionskontrollsoftware im Vergleich
Im Folgenden haben wir einen Überblick zu beliebten VCS-Optionen zusammengestellt und diese Systeme miteinander verglichen. Die wichtigste Erkenntnis, die wir daraus gewonnen haben: VCS-Optionen, die auf einem Client-Server-Modell basieren, werden von modernen VCS-Hostinglösungen wie Bitbucket nicht reibungslos unterstützt. Die VCS-Branche hat sich stärker in Richtung verteilter Modelle entwickelt.
Software | Netzwerkarchitektur | Lösung des Konflikts | Entwicklungsstatus | Bitbucket-Unterstützung |
---|---|---|---|---|
Git-Logo Git | VERTEILT | Zusammenführung | Aktiv | Ja |
Mercurial-Logo Mercurial | VERTEILT | Zusammenführung | Aktiv | Ja |
SVN-Logo SVN | Client-Server | Mergen oder sperren | Aktiv | Nein |
CVS-Logo CVS | Client-Server | Zusammenführung | Nur Wartung | Nein |
Git und Versionskontrolle
Vorteile der Git-Versionskontrolle
- Fehlertolerante, verteilte Netzwerkarchitektur
- Für schnelle Commits und Check-outs optimiert
- Nicht-destruktive Updates durch unveränderliche Protokolle
Nachteile der Git-Versionskontrolle
- Geringe Unterstützung für große Binärdateien
- Bei sehr großen Repositorys mit umfangreichem Verlauf können sich Interaktionen verlangsamen
- Lernbereitschaft erforderlich, Befehle sind nicht intuitiv
Ältere Versionskontrollsysteme
Vorteile älterer Versionskontrollsysteme
- Mehr Optionen für GUI-Anwendungen
- Umfangreichere Dokumentation und mehr Leitfäden
Nachteile älterer Versionskontrollsysteme
- Single Point of Failure und Datenverluste
- Commits sind von Netzwerkverbindung abhängig
- Eingeschränkte Unterstützung und Häufigkeit von Updates
Du weißt bereits, welche Versionskontrollsoftware du brauchst? Dann lies jetzt unseren Leitfaden und wähle für dein Team das passende Code-Repository aus.
Versionskontrollsoftware Bitbucket
Gründe für die Versionskontrolle mit Bitbucket Cloud für Git und Mercurial
Entwickelt für professionelle Teams
Bitbucket unterstützt eine verteilte Versionskontrolle und erleichtert dir das gemeinsame Programmieren im Team. Bitbucket unterstützt nicht nur die Versionskontrolle mit Git und Mercurial, sondern bietet Teams auch einen zentralen Ort für ihre Projekte, Codes, Tests und Deployments.
Kostenlose unbegrenzte private Repositorys
Kostenlos für kleine Teams mit weniger als fünf Mitgliedern und skalierbar mit Standard- oder Premium-Tarifen für 2 USD pro Benutzer und Monat bzw. 5 USD pro Benutzer und Monat.
Erstklassige Jira- und Trello- Integration
Organisiere deine Projekte mithilfe von Bitbucket-Branches, die du direkt aus Jira-Vorgängen oder Trello-Karten erstellen kannst.
Integriertes Continuous Delivery
Erstelle, teste und deploye mit integrierter CI/CD. Profitiere von Konfiguration als Code und schnellen Feedbackschleifen.
Über 1 Million Teams sind von Bitbucket begeistert
"Wir sind von SVN zu Git und Bitbucket umgestiegen, um den Workflow unserer verteilten Teams zu vereinfachen, die Entwicklung zu beschleunigen und die Codeverwaltung für mehr als 60 Softwareprodukte zu stemmen."
Code, Management, Zusammenarbeit
Bitbucket ist die Git-Lösung für professionelle Teams