Was sind Versionskontrollsysteme?

Versionskontrollsysteme (VCS) sind für das Verfolgen und Verwalten von Änderungen am Quellcode unerlässlich. Im Folgenden erfahren Sie das Wesentliche über dezentralisierte, zentralisierte und lokale Versionskontrollsysteme.

Erklärt: Versionskontrollsysteme

Versionskontrolle ist der systematische Prozess für das Verfolgen und Verwalten von Aktualisierungen des Quellcodes und der Assets. Versionskontrollsysteme sind für effiziente Arbeitsabläufe von grundlegender Bedeutung, da sie für Programmierer, Grafiker und andere Teammitglieder als einzige verlässliche Informationsquelle fungieren und gleichzeitig jedem die Möglichkeit geben, unabhängig zu einer gemeinsamen Codebasis beizutragen. Sie dienen auch als Sicherheitsnetz, das es ermöglicht, Codeaktualisierungen rückgängig zu machen, falls während der Entwicklung ein katastrophaler Fehler auftreten sollte.

Faktoren wie die Größe eines Teams und die geografische Verteilung können beeinflussen, welche Versionskontrollsysteme ein Spieleentwickler einsetzen möchte. Einzelne Entwickler stellen möglicherweise fest, dass eine lokale Lösung ausreicht, um auf dem Laufenden zu bleiben, während größere Teams ein robustes und skalierbares Versionskontrollsystem verwenden sollten, das ihnen die Zusammenarbeit über Zeitzonen und geografische Grenzen hinweg erleichtert.

Warum sollte man Versionskontrollsysteme verwenden?

Versionskontrollsysteme sind eine zentrale Säule von DevOps, die es Teams ermöglichen, zusammenzuarbeiten und den Quellcode eines Projekts schnell zu bearbeiten.

Wer mit Versionskontrolle arbeitet, hat immer ein Backup. Einzelne Projektaktualisierungen werden in regelmäßigen Abständen zu einer einzelnen Gruppe, einem so genannten «Commit», zusammengefasst, bevor sie in den Hauptquellcode eingefügt werden. Wenn eine Aktualisierung einen Fehler verursacht, ist es möglich, das Projekt auf eine frühere Version zurückzusetzen und den Commit zu untersuchen, um das Problem zu diagnostizieren.

Durch den Zugriff auf einen vollständigen Projektverlauf und die Möglichkeit, Fehler rückgängig zu machen, vereinfachen Versionskontrollsysteme die Fehlerfindung und erleichtern die Wiederherstellung zuvor entfernter Funktionen.

Zentralisierte Versionskontrollsysteme

Dezentralisierte Versionskontrollsysteme

Mit dezentralisierten Versionskontrollsystemen können Sie einchecken, verzweigen und zusammenführen, ohne sich mit dem Hauptserver zu verbinden. Jeder Mitwirkende arbeitet mit einem geklonten Repository, das in der Cloud gespeichert ist. Ihr Hauptvorteil besteht darin, dass die Teammitglieder unabhängig voneinander und mit hoher Geschwindigkeit arbeiten können, ohne sich um langsame Netzwerke oder VPNs kümmern zu müssen. Es ist sogar möglich, offline an einem Projekt zu arbeiten, aber zum Pushen oder Pullen von Updates ist immer noch eine Internetverbindung erforderlich.

Bei dezentralisierten Versionskontrollsystemen kann es zu langen Wartezeiten kommen, wenn Sie Ihren gesamten Projektverlauf herunterladen müssen, insbesondere bei großen Projekten mit umfangreichen Änderungsverläufen. Studios, die mit großen Binärdateien arbeiten, sollten die Speichernutzung sorgfältig überwachen, da diese Dateien schnell viel Platz beanspruchen können.

Studios, die Flexibilität und potenzielle Produktivitätssteigerungen anstreben, sollten eine dezentralisierte Versionskontrolle in Betracht ziehen.

Lokale Versionskontrollsysteme

Lokale Versionskontrollsysteme sind die einfachste Form der Versionskontrolle und werden hauptsächlich von einzelnen Entwicklern und nicht von Teams verwendet. Bei der lokalen Versionskontrolle werden alle Projektdaten auf einem einzigen Computer gespeichert, und Änderungen an Projektdateien werden als Patches gespeichert. Jeder Patch enthält nur die Aktualisierungen, die seit dem vorherigen Patch vorgenommen wurden. Wenn ein Problem mit einer bestimmten Version Ihres Projekts auftritt, müssen Sie die gesamte Sammlung von Patches untersuchen, um herauszufinden, wie die Projektdateien zu einem bestimmten Zeitpunkt aussahen, um das Problem zu diagnostizieren.

Da sie an einen Computer gebunden sind, sind lokale Versionskontrollsysteme von Natur aus weniger flexibel als ihre dezentralisierten und zentralisierten Gegenstücke. Die Zusammenarbeit zwischen Teammitgliedern ist schwierig, und wenn die Datenbank beschädigt ist, kann es schwierig, wenn nicht gar unmöglich sein, die verlorenen Informationen wiederherzustellen.

Im Allgemeinen ist es in Ordnung, mit lokaler Versionskontrolle zu beginnen, aber sobald Sie anfangen zu skalieren (schon von einem 1-Person-Team zu einem 2-Personen-Team), ist die Arbeit mit einer dezentralisierten oder zentralen Versionskontrolle besser.

Dezentralisierte Versionskontrollsysteme

Zentralisierte Versionskontrollsysteme

Zentralisierte Versionskontrollsysteme verwenden einen Check-in/Push-Workflow zur Verbindung mit dem Hauptserver. Jede Änderung oder Aktualisierung des Quellcodes wird automatisch als neue Version im Repository gespeichert. Zentralisierte Versionskontrollsysteme verfügen über leistungsstarke Funktionen zum Verzweigen und Zusammenführen, ohne dass das Repository auf mehrere Rechner geklont werden muss. In diesem Sinne ist es potenziell sicherer.

Zentralisierte Versionskontrollsysteme erfordern eine Netzwerkverbindung. Da die Teams an eine einzige Version des Projekts gebunden sind, die auf einem Server gespeichert ist, können Serviceunterbrechungen zu erheblichen Verzögerungen führen. Ein weiterer Nachteil der zentralisierten Versionskontrolle ist, dass sie schlecht skalierbar ist. Je mehr Entwickler an Ihrem Projekt mitarbeiten, desto weniger Möglichkeiten gibt es, Änderungen in einer stabilen Umgebung voranzutreiben, was zu Problemen wie Merge-Konflikten führen kann.

Wenn Sie an Versionskontrollsystemen interessiert sind, die einfach einzurichten und zu verwenden sind, können Sie einen zentralisierten Arbeitsablauf in Betracht ziehen.

Lokale Versionskontrollsysteme

Lokale Versionskontrollsysteme sind die einfachste Form der Versionskontrolle und werden hauptsächlich von einzelnen Entwicklern und nicht von Teams verwendet. Bei der lokalen Versionskontrolle werden alle Projektdaten auf einem einzigen Computer gespeichert, und Änderungen an Projektdateien werden als Patches gespeichert. Jeder Patch enthält nur die Aktualisierungen, die seit dem vorherigen Patch vorgenommen wurden. Wenn ein Problem mit einer bestimmten Version Ihres Projekts auftritt, müssen Sie die gesamte Sammlung von Patches untersuchen, um herauszufinden, wie die Projektdateien zu einem bestimmten Zeitpunkt aussahen, um das Problem zu diagnostizieren.

Da sie an einen Computer gebunden sind, sind lokale Versionskontrollsysteme von Natur aus weniger flexibel als ihre dezentralisierten und zentralisierten Gegenstücke. Die Zusammenarbeit zwischen Teammitgliedern ist schwierig, und wenn die Datenbank beschädigt ist, kann es schwierig, wenn nicht gar unmöglich sein, die verlorenen Informationen wiederherzustellen.

Im Allgemeinen ist es in Ordnung, mit lokaler Versionskontrolle zu beginnen, aber sobald Sie anfangen zu skalieren (schon von einem 1-Person-Team zu einem 2-Personen-Team), ist die Arbeit mit einer dezentralisierten oder zentralen Versionskontrolle besser.

Benefits of version control

Modification Tracking

Easily track modifications and merge across the project

File Comparison

Enables file comparison and identifies the differences between files

Troubleshooting

Easy troubleshooting due to the full archive of changes recorded within the VCS

Central Repository

The central repository allows seamless collaboration without impacting individual performance or code changes

File Sharing

Free up space and time by seamlessly sharing files with developers and stakeholders without having to constantly save copies of code adjustments

Distributed Development

Distributed development allows developers to work anywhere at their convenience

Version Control e-Book

Should you work centralized or distributed? Each has its advantages and disadvantages – learn which approach to version control will work best for your team in this free e-book.

Verwandte Themen

Erkunden Sie weitere Ressourcen, um mehr über Versionskontrollsysteme sowie andere DevOps-Tools und -Prozesse zu erfahren.

Agile vs. DevOps

Agile und DevOps verfolgen dieselben Ziele – Wertschöpfung für die Kunden mittels regelmäßiger Veröffentlichungen –, unterscheiden sich aber etwas in der Herangehensweise. Erfahren Sie, wie beide Lösungen zusammen eingesetzt werden können.

DevOps-Grundsätze

Jedes Spielestudio sucht nach Möglichkeiten, die Produktion zu beschleunigen und gleichzeitig die Kosten zu reduzieren. DevOps bietet die beste Möglichkeit, beides zu erreichen. Lernen Sie zunächst die wichtigsten Grundsätze der DevOps-Methodologie kennen.

Vorteile von DevOps

Die Implementierung von DevOps-Verfahren optimiert die Entwicklungspipeline und steigert die Zufriedenheit des Teams und der Benutzer. Erfahren Sie mehr darüber, wie DevOps Sie unterstützen kann.

Versionskontrolle für die Spieleentwicklung

Nutzen Sie verteiltes und zentralisiertes Arbeiten mit den Versionskontrollsystemen von Unity. Verwalten Sie große Binärdateien mit datei- und änderungssatzbasierten Workflows. Speichern Sie Quellcode und Assets und verfolgen Sie Änderungen mit einem sicheren Versionskontrollsystem, das für jede Engine geeignet ist.

Wir verwenden Cookies, damit wir Ihnen die beste Erfahrung auf unserer Website bieten können. In unseren Cookie-Richtlinien erhalten Sie weitere Informationen.

Verstanden