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

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 >>

Warum der Air Assist unverzichtbar ist – Mein Erfahrungsbericht

Nachdem ich meinen ATOMSTACK A12 Ultra Laser[*] und die R2 V2 Drehwalze[*] in Betrieb genommen hatte, war es nur eine Frage der Zeit, bis ich mir zusätzlich ein Air Assist System zugelegt habe. Ich entschied mich für das DEWALLIE Air Assist Set[*], und ich kann schon vorweg sagen: Es war eine der besten Ergänzungen für meine Lasergravur-Setups, vor allem beim Arbeiten mit Holz!


Weiter >>

Mein neues Setup: Der ATOMSTACK R2 V2 Drehwalze und A12 Ultra/Pro Laser – Perfekt für Gravuren auf runden Objekten!

Als ich mir kürzlich den ATOMSTACK A12 Ultra Laser[*] zugelegt habe, war mir schnell klar, dass ich das volle Potenzial dieses leistungsstarken Gravierers ausschöpfen wollte. Also habe ich nicht lange gezögert und gleich die ATOMSTACK R2 V2 Drehwalze[*] dazu gekauft, die es ermöglicht, zylindrische Objekte wie Trinkflaschen, Gläser oder Stifte zu gravieren.


Weiter >>