Repository: Alles Wissenswerte zum Verzeichnis für digitale Archive
In einem Repository werden Daten und Zusammenhänge gespeichert und können dort abgerufen und verändert werden. Es gibt dabei verschiedene Repositorys, die für die Versionskontrolle, Metadaten und andere Zwecke verwendet werden.
- Inklusive Wildcard-SSL-Zertifikat
- Inklusive Domain Lock
- Inklusive 2 GB E-Mail-Postfach
Was ist ein Repository?
Der Begriff „Repository“ kommt aus dem Englischen und bedeutet „Lager“. Er geht zurück auf das lateinische Wort repositorium. In der Software-Technik bildet ein Repository ein digitales Archiv, in dem Daten, Dokumente, Entwicklungsfortschritte, Metadaten und Programme aufbewahrt und zur Verfügung gestellt werden können. Dabei geht es neben der reinen Speicherung auch um die Versionskontrolle. Je nach Einsatzzweck ermöglicht die Technik die Zusammenarbeit in größeren und räumlich getrennten Teams oder Communitys an einem gemeinsamen Projekt. Man unterscheidet zwischen verschiedenen Repository-Formen, die sich hinsichtlich ihres Ansatzes und ihres Aufbaus unterscheiden. Zu den bekanntesten Repositorys gehören GitHub und das Google Repository.
Grundlage für ein Repository ist in der Regel eine Datenbank, die je nach Bedarf auf einer lokalen Festplatte, zentral auf einem Server oder verteilt in einem Content Delivery Network (CDN), also einem Verbund von zahlreichen verschiedenen Servern, aufgesetzt werden kann. Auf dieser Basis werden Datenkataloge angelegt, die nicht nur die Formen und Darstellungen der unterschiedlichen gespeicherten Objekte enthalten, sondern auch Auskunft über ihre Beziehung untereinander geben. All diese Informationen sind in Form von Metadaten hinterlegt und können daher zu jeder Zeit gesucht, abgerufen und mit der entsprechenden Berechtigung geändert und angepasst werden.
Wie ist ein Repository aufgebaut?
Um zu veranschaulichen, wie ein Repository in der Regel aufgebaut ist, kann man das Bild eines Baums heranziehen. Gerade im Bereich der Software-Entwicklung findet sich dies in den Begrifflichkeiten wieder. Dort wird unterschieden zwischen dem Stamm (engl. trunk), der die aktuelle Version eines Projekts sowie den Quellcode enthält, und den Zweigen (engl. branches), in denen Änderungen und Neuerungen gespeichert sind. Diese werden dem Stamm dann wieder hinzugefügt, sodass alle Beteiligten Zugriff auf alle Entwicklungsstände haben. Die Speicherung funktioniert dabei über Tags.
Welche Repositorys gibt es?
Repository ist allerdings längst nicht gleich Repository, weshalb man zunächst eine Unterteilung vornehmen muss, um welche Art des Archivs es sich handelt. Grundsätzlich gibt es zahlreiche verschiedene Ansätze, die folgenden sind allerdings die bekanntesten.
Repository für Versionsverwaltung
Ziel der Versionsverwaltung ist es, Daten, Arbeitsschritte und Verbindungen logisch und übersichtlich in einem gemeinsamen Archiv zu speichern. Quellcode-Dateien und anderen Daten werden darin hinterlegt und archiviert. Möchte ein Entwickler oder eine Entwicklerin an einem Projekt weiterarbeiten, können die Daten aus dem Repository auf eine lokale Festplatte kopiert werden. Diesen Vorgang nennt man „Auschecken“. Der Entwickler oder die Entwicklerin arbeitet dann mit den lokalen Daten, führt Änderungen durch oder verwirft vorherige Änderungen. Ist die Arbeit abgeschlossen, wird der neueste Stand des Projekts wieder in das Repository geladen. Hierbei spricht man vom „Einchecken“. Alle Änderungen und Kommentare werden dabei protokolliert.
Dieser Ansatz hat gleich mehrere Vorteile: Zum einen können Personen an einem Projekt arbeiten, ohne dass alte Stände überschrieben werden. Sämtliche Entwicklungsstände werden stattdessen protokolliert, sodass es möglich ist, bei einem Fehler oder einer falschen Entwicklung wieder zu einem alten Entwicklungsstand zurückzukehren. Zum anderen ermöglicht ein solches Repository die Arbeit in großen oder kleinen Teams an ein und demselben Projekt. Alle Beteiligten checken dabei ihre Stände ein und können so auch parallel entwickeln, ohne dass Stände überschrieben werden oder Änderungen verloren gehen. Alle Beteiligten können dabei theoretisch von jedem beliebigen Stand aus weitermachen, ohne Probleme, vorherige Absprachen oder Risiken.
Zu den bekanntesten Versionsverwaltungssystemen gehören CVS, GitHub und SVN.
Repository für Metadaten
Ein Repository für Metadaten kommt vor allem im Segment der hochkomplexen IT-Infrastrukturen zum Einsatz. Ein solches Repository enthält dabei Daten des gesamten Systems sowie Informationen zu Zusammenhängen und der Umgebung der Infrastruktur. Der Vorteil dabei ist, dass eventuelle Änderungen keinen Eingriff in den eigentlichen Quellcode erfordern. Auch die Implementierung zusätzlicher Programme kann so vermieden werden. Stattdessen wird die Datenbanktabelle, die die Grundlage für das jeweilige System ist, unkompliziert angepasst. Insbesondere bei der Unternehmensanwendungsintegration (UAI, engl. Enterprise Application Integration, EAI) sowie im Bereich Data Warehouse kommt das Metadaten-Repository zum Einsatz.
Repository für Software
Gerade für Nutzerinnen und Nutzer, die Linux verwenden, ist das Software-Repository ein wichtiges Tool für die tägliche Arbeit. Dieses beinhaltet in erster Linie Programmpakete und die dazu passenden Metadaten wie Erklärungen, Anmerkungen, Abhängigkeiten und Änderungen. Die Installation und sämtliche Aktualisierungen werden mit Hilfe eines Paketmanagers vorgenommen. Durch diese Art der Paketverwaltung müssen sich Nutzerinnen und Nutzer nicht eigenständig um die Aktualität ihrer Anwendungen kümmern, sondern halten ihr System automatisch auf dem neuesten Stand. Die Updates selbst kommen dabei häufig aus der Community. Paket-Maintainer stellen die aktualisierten Daten zur Verfügung und pflegen das jeweilige Software-Repository.
Repository für Dokumentenserver
Für umfangreiche Netzpublikationen und Dokumentenserver wird der Begriff Repository ebenfalls zumindest im übertragenen Sinne verwendet. Zwar werden bei dieser Nutzung einige Besonderheiten des Repository-Prinzips nicht eins zu eins übernommen, das Vorgehen wird dafür aber für die Nutzung angepasst. Bekannte Dokumentenserver wie arXiv stellen so der Allgemeinheit zahlreiche Publikationen aus den Bereichen Biologie, Informatik, Mathematik, Physik und Statistik zur Verfügung. Ein Experte oder eine Expertin überprüft neue Artikel und lässt diese zu oder lehnt sie ab. Die wissenschaftlichen Werke stehen dann zum Abruf bereit; der Aspekt der Bearbeitung, wie etwa bei einem Repository für Versionsverwaltung, entfällt allerdings.
Repository für CASE
Auch im Bereich der rechnergestützten Software-Entwicklung (engl. Computer-aided Software Engineering) wird häufig ein Repository genutzt. Es kommt vor allem zum Speichern von Projektdaten, Dokumentationen und Quellcode zum Einsatz.
Welche Repositorys lohnen sich?
Es gibt zahlreiche verschiedene Repositorys für die unterschiedlichen Einsatzzwecke. Unterschieden werden kann dabei auch zwischen Lösungen, die Open Source sind, und jenen, die kommerziell angeboten werden. Das bekannteste Open-Source-Repository ist sicherlich GitHub. Es gibt aber auch zahlreiche GitHub-Alternativen wie Apache Allura, Bazaar, Gitolite, Mercurial oder SourceForge. Einen genauen Vergleich zwischen GitHub und GitLab finden Sie ebenfalls im Digital Guide. Zu den bekanntesten proprietären Repositorys gehören Alienbrain, Bitkeeper, IBM Rational Synergy oder MySQL Yum.
Ob sich ein Repository für Ihre Zwecke lohnt, ist vor allem von Ihren Ansprüchen und Ihrer Arbeitsweise abhängig. Gerade für Teams kann ein Repository die Arbeit merklich erleichtern und den Workflow optimieren. Selbst wenn Mitarbeiter und Mitarbeiterinnen zu verschiedenen Zeiten und von unterschiedlichen Orten aus auf ein Projekt zugreifen und ihre Änderungen vornehmen, bleibt der Stamm selbst immer sicher. Lösungen können somit ausprobiert werden, ohne vorherige Fortschritte zu gefährden. Da es zahlreiche sinnvolle und leistungsstarke Open-Source-Lösungen gibt, lohnt es sich, zunächst diese zu testen und nur im Bedarfsfall zu einer kommerziellen Version zu wechseln.
Wie funktioniert ein Repository?
Richtig eingesetzt, kann ein Repository also zahlreiche Vorteile mit sich bringen. Wie das funktioniert, sieht man gut am Beispiel der Hosting-Plattform GitHub. Nach der Installation und Einrichtung von GitHub erwartet Sie eine sehr intuitive Benutzeroberfläche. Dort können Aufgaben vergeben und unabhängig voneinander abgearbeitet werden. Für die Änderungen werden Commits und Pulls verwendet, die alle übersichtlich aufgelistet sind. So behält nicht nur die Teamleitung sämtliche Arbeitsschritte im Blick, sondern auch alle Mitglieder können das Projekt bis ins kleinste Detail mitverfolgen. Möchten Sie mehr über das Prinzip hinter der Plattform erfahren, lohnt sich ein Blick in unser informatives Git-Tutorial.