Git oder SVN? Aber was ist eigentlich ein Versionskontrollsystem?

| | Allgemein, Programmierung

Als Informatiker beziehungsweise als Anwendungsentwickler sollte man die Begriffe Git und SVN beide kennen. Aber warum sollte man überhaupt eine Versionskontrolle benutzten? Und was ist eine Versionskontrolle überhaupt?

Genau um dieses Theme geht es jetzt.

VersionskontrollelokeVCS

Versionskontrollsysteme (VCS) protokollieren sämtliche Änderungen die an einer oder mehreren Dateien, sowie Ordnerstrukturen  über eine länger Zeit hinweg geändert wurden. Das heißt das der Zustand der Dateien bzw. Ordner Rückverfolgbar und Wiederherstellbar ist.

Wenn man zum Beispiel in die „falsche Richtung“ Programmiert hat oder Mist gebaut hat kann man einfach und schnell auf eine ältere Version zurück springen.

Viele Leute Versionieren ihre Werke einfach mit mehreren Ordnern, es wird also für jede Version ein neue Ordner angelegt. Allerdings haben Programmierer dieses Verfahren erleichtert und sicherer gemacht indem sie ein VCS entwickelt haben, welches alle relevanten Änderungen in einer Datenbank speichert.

Zentralisierte VersionskontrollezentraleCVS

Nun stellt sich natürlich die Frage, was ist wenn man im Team arbeitet und bis jetzt die Lösung der Ordner Struktur zum Beispiel per FTP abbildet?

Auch dieses Problem haben Programmierer schon vor längerer Zeit erkannt und behoben. Die Lösung ist eine Zentralisierte Versionskontrolle (CVCS), ein Beispiele wäre zum Beispiel Subversion. Dabei werden die Dateien auf einem Zentrallen Server gespeichert und müssen zum Bearbeiten erst per „checkout“ vom Server geholt werden und nach der Bearbeitung „commited“ werden.
Durch diese Lösung ist der Wissenstand darüber wer etwas an einem Projekt macht mehr oder weniger gegeben. Es wird genauestens protokolliert wer welche Änderungen an einer Dateien durchgeführt hat. Auch kann aber fest gelegt werden wer Dateien ändern darf und welche.

Probleme ergeben sich bei dem Verfahren besonders wenn keine Internetverbindung zum Zentralen Server verfügbar ist oder der Server aus anderen Gründen nicht erreichbar ist.

Verteilte VersionskontrolleverteileVCS

Nun kommen wir zum wirklich interessanten Teil der Versionskontroll Entwicklung, es kommt die verteilte Versionskontrolle (DVCS) ins Spiel. DVCS sind zum Beispiel Git oder Mercurial. Mit DVCS erhält der Anwender nicht nur einen bzw. den letzten Snapshot, sondern eine vollständige Kopie des Repository.
Dadurch ist es auch möglich zu arbeiten wenn der Server ausfällt oder keine Verbindung möglich ist. Auch kann so das Repository wieder hergestellt werden wenn es einen Totalausfall mit Datenverlusten gab.
Weiterhin ist es möglich mit verschiedenen externen Repositories zu arbeiten und somit simultan mit anderen zusammenarbeiten zu könne.
Somit ist es auch möglich zum Beispiel Hierarchien zu bilden was mit CVCS nicht möglich ist.

Neueste Beiträge

Der perfekte Einstieg in die Welt der Vinyls: Der Denon DP-300F und 2 Alternativen

Warum Vinyl?

Vinyl erlebt seit einigen Jahren ein riesiges Comeback. Der warme, analoge Klang, das bewusste Musikhören und das Sammeln von Schallplatten faszinieren immer mehr Musikliebhaber. Dabei ist nicht nur das nostalgische Feeling ausschlaggebend, sondern vor allem auch der unverwechselbare Klangcharakter von Vinyl – ein Klang, der trotz moderner digitaler Verfahren nach wie vor viele Fans begeistert.

Denon DP-300F[*] – Der ideale Allrounder für Einsteiger

Der Denon DP-300F[*] ist nach wie vor ein beliebter vollautomatischer Plattenspieler im Einsteigerbereich. Sein automatischer Tonarm sorgt für einen schonenden Umgang mit Nadel und Platte – perfekt, wenn du ohne großen Aufwand direkt in den Vinylgenuss starten möchtest.


Weiter >>

Ein Leitfaden für Senioren: Günstige Smartphones bis 100 Euro – Unsere 4 Favoriten & Erfahrungsbericht einer maßgeschneiderten Senioren-Lösung – UPDATE 2024/25

In diesem Beitrag stellen wir dir vier günstige Smartphones vor, die aktuell (Stand Dezember 2024) für unter 100 Euro erhältlich sind. Zusätzlich teilen wir eine ganz besondere Geschichte aus dem Familienkreis: Wie wir eines dieser Geräte für die Oma meiner Verlobten eingerichtet haben, damit sie trotz ihrer Parkinson-Erkrankung gut damit zurechtkommt.


Weiter >>

Getting Started with Alfresco SDK/Development: A Beginner’s Guide to Automating File Organization with Alfresco Behaviors

Alfresco is an enterprise content management platform known for its flexibility and extensibility. One powerful way to extend its functionality is through Behaviors, which allow you to run custom logic whenever specific repository events occur. For example, you can trigger custom actions whenever nodes are created, updated, or deleted.


Weiter >>

Enhancing Alfresco’s Public API (ACS): A Step-by-Step Guide to Custom Node Extensions with MIME Type Restrictions

Introduction

In today’s digital landscape, controlling and validating the types of content users can upload into systems is essential for security and data integrity. Alfresco, a leading open-source content services platform, offers a flexible public API that enables developers to create custom extensions and adapt the platform to specific organizational needs. This article provides a step-by-step guide to implementing a MIME type restriction feature in Alfresco’s Nodes API, allowing for more controlled and secure content uploads.


Weiter >>