Versionsverwaltung in der Softwareentwicklung
In der heutigen Softwareentwicklung ist eine Versionsverwaltung für große und teambasierte Projekte unabdingbar. Sie ermöglicht es, in nachvollziehbaren Schritten eine Anwendung zu entwickeln. Doch was genau versteht man als Versionsverwaltung und welche Vorteile hat es für die Entwicklung von Software?
Warum überhaupt eine Versionsverwaltung
Versionsverwaltung kurz VCS (Version Control System) ist ein System, mit dem Quellcode verwaltet und nachvollzogen, Anwendungen stetig optimiert oder ggf. auch auf einen früheren Stand eines Projektes zurückgegriffen werden kann. Die wohl bekanntesten Beispiele aus der Praxis, welche mit VCS entwickelt werden, sind das Open Source Projekt für den Linux-Kernel, die Entwicklung des Android Betriebssystems oder auch die Entwicklung der Programmiersprache PHP.
In großen Projekten arbeiten häufig mehrere Entwickler an einer Software und es treffen verschiedene Versionen des Quelltextes aufeinander. Um Fehler zu vermeiden und die Entwicklung zu optimieren, sind die folgenden Funktionalitäten deshalb sehr wichtig:
- Protokoll der Änderungen,
- Wiederherstellung und Archivierung von Entwicklungsständen sowie
- die Koordination von Aufgaben beteiligter Personen.
Die 3 Arten der VCS
Die lokale Versionsverwaltung dient der Versionierung von Dateien oder häufig Dokumenten und wird in der Regel nur auf einem einzelnen System eingesetzt.
Bei der zentralen Versionsverwaltung wird das gesamte Projekt nur auf einem System festgehalten und den berechtigten Personen zur Verfügung gestellt. Die unterschiedlichen Stände der Software sind bloß auf diesem System abgelegt.
Die verteilte Versionsverwaltung bietet allen beteiligten Entwicklern die Möglichkeit, an einer lokal geklonten Version des Projektes zu arbeiten und mit einem zentralen Stand abzugleichen und ggf. auch den Quellcode durch andere Entwickler oder automatisierte Mechanismen überprüfen zu lassen.
Tools zur Versionsverwaltung in Projekten
Welche Tools gibt es, um Versionsverwaltung für das eigene Projekt zu nutzen und welchen Vorteil bieten webbasierte Services gerade im Bereich der Webentwicklung? Die bekanntesten Tools – um nur zwei zu nennen – sind sicherlich Apache Subversion (SVN) oder Git mit seinen webbasierten Repositories GitHub, GitLab oder Bitbucket.
- SVN als freie Software zählt zu den zentralen Versionsverwaltungssystemen und wird vor allem für die Versionierung von Binärdateien verwendet. Die Unterstützung für die Bearbeitung auf einem zentralen System hat den Vorteil, dass gerade bei großen Binärdateien, z. B. bei grafischen Elementen, die Erkennung weitestgehend automatisch erfolgt und SVN die Änderungen abgleicht.
- Git im Gegenzug als verteilte Versionsverwaltung ermöglicht im betrieblichen Einsatz eine schnellere Bearbeitung durch die lokale Version auf dem System des Entwicklers. Des Weiteren kann jeder beteiligte Entwickler den Stand einsehen und überprüfen, bevor dieser in die zentrale Version eingespielt werden.
Gerade in der Webentwicklung werden immer häufiger webbasierte Services eingesetzt. So bietet zum Beispiel GitHub mit seiner Vielzahl an frei verfügbaren Open Source Projekten einer Vielzahl von Entwicklern die Möglichkeit, Software kostenfrei zu versionieren.
Im betrieblichen Umfeld muss man meist auf ein kostenpflichtiges Angebot zurückgreifen. Hier kann aber GitLab als webbasierter Service genutzt werden, da man so zusätzlich die sensiblen Daten einer Software in Unternehmen auf einem eigenen Server behalten kann.
Zusammengefasst lässt sich sagen, dass Softwareprojekte heutzutage nicht mehr ohne eine Versionsverwaltung ob lokal, zentral oder verteilt möglich sind. Eine Vielzahl von Tools lassen auch Ihnen die Chance, Ihre Idee zukunftsträchtig zu verwirklichen. Selbstverständlich stehen Ihnen die kreITiv Softwareentwickler bei Fragen und zur Unterstützung gern zur Seite.