In einem Re­po­si­to­ry werden Daten und Zu­sam­men­hän­ge ge­spei­chert und können dort abgerufen und verändert werden. Es gibt dabei ver­schie­de­ne Re­po­si­to­rys, die für die Ver­si­ons­kon­trol­le, Metadaten und andere Zwecke verwendet werden.

KI-Assistent kostenlos – Ihr smarter All­tags­hel­fer
  • DSGVO-konform & sicher gehostet in Deutsch­land
  • Pro­duk­ti­vi­tät steigern – weniger Aufwand, mehr Output
  • Direkt im Browser starten – ohne In­stal­la­ti­on

Was ist ein Re­po­si­to­ry?

Der Begriff „Re­po­si­to­ry“ kommt aus dem Eng­li­schen und bedeutet „Lager“. Er geht zurück auf das la­tei­ni­sche Wort re­po­si­to­ri­um. In der Software-Technik bildet ein Re­po­si­to­ry ein digitales Archiv, in dem Daten, Dokumente, Ent­wick­lungs­fort­schrit­te, Metadaten und Programme auf­be­wahrt und zur Verfügung gestellt werden können. Dabei geht es neben der reinen Spei­che­rung auch um die Ver­si­ons­kon­trol­le. Je nach Ein­satz­zweck er­mög­licht die Technik die Zu­sam­men­ar­beit in größeren und räumlich ge­trenn­ten Teams oder Com­mu­ni­tys an einem ge­mein­sa­men Projekt. Man un­ter­schei­det zwischen ver­schie­de­nen Re­po­si­to­ry-Formen, die sich hin­sicht­lich ihres Ansatzes und ihres Aufbaus un­ter­schei­den. Zu den be­kann­tes­ten Re­po­si­to­rys gehören GitHub und das Google Re­po­si­to­ry.

Grundlage für ein Re­po­si­to­ry ist in der Regel eine Datenbank, die je nach Bedarf auf einer lokalen Fest­plat­te, zentral auf einem Server oder verteilt in einem Content Delivery Network (CDN), also einem Verbund von zahl­rei­chen ver­schie­de­nen Servern, auf­ge­setzt werden kann. Auf dieser Basis werden Da­ten­ka­ta­lo­ge angelegt, die nicht nur die Formen und Dar­stel­lun­gen der un­ter­schied­li­chen ge­spei­cher­ten Objekte enthalten, sondern auch Auskunft über ihre Beziehung un­ter­ein­an­der geben. All diese In­for­ma­tio­nen sind in Form von Metadaten hin­ter­legt und können daher zu jeder Zeit gesucht, abgerufen und mit der ent­spre­chen­den Be­rech­ti­gung geändert und angepasst werden.

Wie ist ein Re­po­si­to­ry aufgebaut?

Um zu ver­an­schau­li­chen, wie ein Re­po­si­to­ry in der Regel aufgebaut ist, kann man das Bild eines Baums her­an­zie­hen. Gerade im Bereich der Software-Ent­wick­lung findet sich dies in den Be­griff­lich­kei­ten wieder. Dort wird un­ter­schie­den zwischen dem Stamm (engl. trunk), der die aktuelle Version eines Projekts sowie den Quellcode enthält, und den Zweigen (engl. branches), in denen Än­de­run­gen und Neue­run­gen ge­spei­chert sind. Diese werden dem Stamm dann wieder hin­zu­ge­fügt, sodass alle Be­tei­lig­ten Zugriff auf alle Ent­wick­lungs­stän­de haben. Die Spei­che­rung funk­tio­niert dabei über Tags.

Welche Re­po­si­to­rys gibt es?

Re­po­si­to­ry ist al­ler­dings längst nicht gleich Re­po­si­to­ry, weshalb man zunächst eine Un­ter­tei­lung vornehmen muss, um welche Art des Archivs es sich handelt. Grund­sätz­lich gibt es zahl­rei­che ver­schie­de­ne Ansätze, die folgenden sind al­ler­dings die be­kann­tes­ten.

Re­po­si­to­ry für Ver­si­ons­ver­wal­tung

Ziel der Ver­si­ons­ver­wal­tung ist es, Daten, Ar­beits­schrit­te und Ver­bin­dun­gen logisch und über­sicht­lich in einem ge­mein­sa­men Archiv zu speichern. Quellcode-Dateien und anderen Daten werden darin hin­ter­legt und ar­chi­viert. Möchte ein Ent­wick­ler oder eine Ent­wick­le­rin an einem Projekt wei­ter­ar­bei­ten, können die Daten aus dem Re­po­si­to­ry auf eine lokale Fest­plat­te kopiert werden. Diesen Vorgang nennt man „Aus­che­cken“. Der Ent­wick­ler oder die Ent­wick­le­rin arbeitet dann mit den lokalen Daten, führt Än­de­run­gen durch oder verwirft vorherige Än­de­run­gen. Ist die Arbeit ab­ge­schlos­sen, wird der neueste Stand des Projekts wieder in das Re­po­si­to­ry geladen. Hierbei spricht man vom „Ein­che­cken“. Alle Än­de­run­gen und Kom­men­ta­re werden dabei pro­to­kol­liert.

Dieser Ansatz hat gleich mehrere Vorteile: Zum einen können Personen an einem Projekt arbeiten, ohne dass alte Stände über­schrie­ben werden. Sämtliche Ent­wick­lungs­stän­de werden statt­des­sen pro­to­kol­liert, sodass es möglich ist, bei einem Fehler oder einer falschen Ent­wick­lung wieder zu einem alten Ent­wick­lungs­stand zu­rück­zu­keh­ren. Zum anderen er­mög­licht ein solches Re­po­si­to­ry die Arbeit in großen oder kleinen Teams an ein und demselben Projekt. Alle Be­tei­lig­ten checken dabei ihre Stände ein und können so auch parallel ent­wi­ckeln, ohne dass Stände über­schrie­ben werden oder Än­de­run­gen verloren gehen. Alle Be­tei­lig­ten können dabei theo­re­tisch von jedem be­lie­bi­gen Stand aus wei­ter­ma­chen, ohne Probleme, vorherige Ab­spra­chen oder Risiken.

Zu den be­kann­tes­ten Ver­si­ons­ver­wal­tungs­sys­te­men gehören CVS, GitHub und SVN.

Re­po­si­to­ry für Metadaten

Ein Re­po­si­to­ry für Metadaten kommt vor allem im Segment der hoch­kom­ple­xen IT-In­fra­struk­tu­ren zum Einsatz. Ein solches Re­po­si­to­ry enthält dabei Daten des gesamten Systems sowie In­for­ma­tio­nen zu Zu­sam­men­hän­gen und der Umgebung der In­fra­struk­tur. Der Vorteil dabei ist, dass even­tu­el­le Än­de­run­gen keinen Eingriff in den ei­gent­li­chen Quellcode erfordern. Auch die Im­ple­men­tie­rung zu­sätz­li­cher Programme kann so vermieden werden. Statt­des­sen wird die Da­ten­bank­ta­bel­le, die die Grundlage für das jeweilige System ist, un­kom­pli­ziert angepasst. Ins­be­son­de­re bei der Un­ter­neh­mens­an­wen­dungs­in­te­gra­ti­on (UAI, engl. En­ter­pri­se Ap­pli­ca­ti­on In­te­gra­ti­on, EAI) sowie im Bereich Data Warehouse kommt das Metadaten-Re­po­si­to­ry zum Einsatz.

Re­po­si­to­ry für Software

Gerade für Nut­ze­rin­nen und Nutzer, die Linux verwenden, ist das Software-Re­po­si­to­ry ein wichtiges Tool für die tägliche Arbeit. Dieses be­inhal­tet in erster Linie Pro­gramm­pa­ke­te und die dazu passenden Metadaten wie Er­klä­run­gen, An­mer­kun­gen, Ab­hän­gig­kei­ten und Än­de­run­gen. Die In­stal­la­ti­on und sämtliche Ak­tua­li­sie­run­gen werden mit Hilfe eines Pa­ket­ma­na­gers vor­ge­nom­men. Durch diese Art der Pa­ket­ver­wal­tung müssen sich Nut­ze­rin­nen und Nutzer nicht ei­gen­stän­dig um die Ak­tua­li­tät ihrer An­wen­dun­gen kümmern, sondern halten ihr System au­to­ma­tisch auf dem neuesten Stand. Die Updates selbst kommen dabei häufig aus der Community. Paket-Main­tai­ner stellen die ak­tua­li­sier­ten Daten zur Verfügung und pflegen das jeweilige Software-Re­po­si­to­ry.

Re­po­si­to­ry für Do­ku­men­ten­ser­ver

Für um­fang­rei­che Netz­pu­bli­ka­tio­nen und Do­ku­men­ten­ser­ver wird der Begriff Re­po­si­to­ry ebenfalls zumindest im über­tra­ge­nen Sinne verwendet. Zwar werden bei dieser Nutzung einige Be­son­der­hei­ten des Re­po­si­to­ry-Prinzips nicht eins zu eins über­nom­men, das Vorgehen wird dafür aber für die Nutzung angepasst. Bekannte Do­ku­men­ten­ser­ver wie arXiv stellen so der All­ge­mein­heit zahl­rei­che Pu­bli­ka­tio­nen aus den Bereichen Biologie, In­for­ma­tik, Ma­the­ma­tik, 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 wis­sen­schaft­li­chen Werke stehen dann zum Abruf bereit; der Aspekt der Be­ar­bei­tung, wie etwa bei einem Re­po­si­to­ry für Ver­si­ons­ver­wal­tung, entfällt al­ler­dings.

Re­po­si­to­ry für CASE

Auch im Bereich der rech­ner­ge­stütz­ten Software-Ent­wick­lung (engl. Computer-aided Software En­gi­nee­ring) wird häufig ein Re­po­si­to­ry genutzt. Es kommt vor allem zum Speichern von Pro­jekt­da­ten, Do­ku­men­ta­tio­nen und Quellcode zum Einsatz.

Welche Re­po­si­to­rys lohnen sich?

Es gibt zahl­rei­che ver­schie­de­ne Re­po­si­to­rys für die un­ter­schied­li­chen Ein­satz­zwe­cke. Un­ter­schie­den werden kann dabei auch zwischen Lösungen, die Open Source sind, und jenen, die kom­mer­zi­ell angeboten werden. Das be­kann­tes­te Open-Source-Re­po­si­to­ry ist si­cher­lich GitHub. Es gibt aber auch zahl­rei­che GitHub-Al­ter­na­ti­ven wie Apache Allura, Bazaar, Gitolite, Mercurial oder SourceF­or­ge. Einen genauen Vergleich zwischen GitHub und GitLab finden Sie ebenfalls im Digital Guide. Zu den be­kann­tes­ten pro­prie­tä­ren Re­po­si­to­rys gehören Ali­en­brain, Bitkeeper, IBM Rational Synergy oder MySQL Yum.

Ob sich ein Re­po­si­to­ry für Ihre Zwecke lohnt, ist vor allem von Ihren An­sprü­chen und Ihrer Ar­beits­wei­se abhängig. Gerade für Teams kann ein Re­po­si­to­ry die Arbeit merklich er­leich­tern und den Workflow op­ti­mie­ren. Selbst wenn Mit­ar­bei­ter und Mit­ar­bei­te­rin­nen zu ver­schie­de­nen Zeiten und von un­ter­schied­li­chen Orten aus auf ein Projekt zugreifen und ihre Än­de­run­gen vornehmen, bleibt der Stamm selbst immer sicher. Lösungen können somit aus­pro­biert werden, ohne vorherige Fort­schrit­te zu gefährden. Da es zahl­rei­che sinnvolle und leis­tungs­star­ke Open-Source-Lösungen gibt, lohnt es sich, zunächst diese zu testen und nur im Be­darfs­fall zu einer kom­mer­zi­el­len Version zu wechseln.

Wie funk­tio­niert ein Re­po­si­to­ry?

Richtig ein­ge­setzt, kann ein Re­po­si­to­ry also zahl­rei­che Vorteile mit sich bringen. Wie das funk­tio­niert, sieht man gut am Beispiel der Hosting-Plattform GitHub. Nach der In­stal­la­ti­on und Ein­rich­tung von GitHub erwartet Sie eine sehr intuitive Be­nut­zer­ober­flä­che. Dort können Aufgaben vergeben und un­ab­hän­gig von­ein­an­der ab­ge­ar­bei­tet werden. Für die Än­de­run­gen werden Commits und Pulls verwendet, die alle über­sicht­lich auf­ge­lis­tet sind. So behält nicht nur die Team­lei­tung sämtliche Ar­beits­schrit­te im Blick, sondern auch alle Mit­glie­der können das Projekt bis ins kleinste Detail mit­ver­fol­gen. Möchten Sie mehr über das Prinzip hinter der Plattform erfahren, lohnt sich ein Blick in unser in­for­ma­ti­ves Git-Tutorial.

Zum Hauptmenü