Verteiltes Versionsmanagement mit GIT
Was ist verteiltes Versionsmanagement?
Versionsmanagement mit klassischen Werkzeugen wie CVS oder Subversion ist durch das Vorhandensein eines zentralen Servers (Repository) gekennzeichnet. Dieser enthält sämtliche Informationen.
Beim verteilten Versionsmanagement, beispielsweise mit Werkzeugen wie git, Mercurial oder Bazaar wird auf ein zentrales Repository verzichtet. Jeder Entwickler verfügt über eine komplette lokale Kopie des Repositories. Dadurch ist Arbeiten auch ohne Zugriff auf das zentrale Repository möglich und die Geschwindigkeit des verteilten Versionsmanagementsystems (DVCS) ist deutlich höher als bei zentralisierten Systemen. Zudem sind DVCS deutlich besser bei der Integration von Änderungen (merges). DVCS eignen sich besonders für Projekte, bei denen das Entwicklungsteam auf mehrere Standorte verteilt ist.
n der praktischen Arbeit wird trotz des dezentralen Ansatzes immer ein Repository als „Hauptrepository“ definiert sein und damit organisatorisch dem Repository eines zentralen Versionsmanagementsystems entsprechen.
Das DVCS Git erhält gegenwärtig viel Aufmerksamkeit. Git wird von einer großen Zahl von Open Source-Projekten eingesetzt. U. a. werden der Linnx-Kernel und Ruby On Rails mit Git verwaltet. Git eignet sich also auf jeden Fall für große Projekte. Die Performance (Geschwindigkeit, Größe des Repositories) von Git ist deutlich besser als die anderer DVCS.
Neben der Tatsache, dass Git mittlerweile ein erprobtes System ist, zeichnet sich Git auch durch eine sehr gute Tool-Unterstützung (Eclipse-Integration mit egit, Clients für alle relevanten Betriebssysteme) aus.
Herausforderungen
- Welche Vorteile und Nachteile haben zentralisierte und verteilte Versionsmanagementsysteme? Welcher Ansatz soll in einem konkreten Projekt verwendet werden?
- Welches Werkzeug soll zur Versionsverwaltung eingesetzt werden?
- Die Arbeitsabläufe von DVCS unterscheiden sich von den gewohnten zentralisierten Systemen. Wie organisiert man also die Arbeit mit einem DVCS?
- Wie werden Änderungen zwischen den vielen Repositories der Entwickler verteilt?
- Wie kann festgestellt werden, dass sich auch tatsächlich alle Änderungen im Hauptrepository befinden?
Lösungen
eXXcellent solutions setzt in der täglichen Arbeit sowohl zentralisierte (Subversion) als auch verteilte Versionsmanagementsysteme (git) ein. Einen Vortrag zum Thema „Versionsmanagement – zentralisiert oder verteilt?“ finden Sie im Download-Bereich.


