Zum Hauptinhalt Zur Navigation Zur Suche

Git-Alternative: Epic Games veröffentlicht Versionsverwaltung Lore

Die Versionsverwaltung soll besser mit großen Binärdateien umgehen, effektiver deduplizieren und einfacher auf große Serversysteme skalierbar sein.
/ Johannes Hiltscher
6 Kommentare Auf Google folgen (öffnet im neuen Fenster)
Lore soll nicht nur Code gut versionieren können. (Bild: Myburgh Roux, Pexels)
Lore soll nicht nur Code gut versionieren können. Bild: Myburgh Roux, Pexels / CC0 1.0

Braucht es echt ein neues Versionskontrollsystem? Ja, sagt Epic Games, und liefert auch gleich: Das Spielestudio hat auf Github(öffnet im neuen Fenster) seine Eigenentwicklung Lore veröffentlicht. Die soll vor allem moderner sein als etablierte Systeme wie Git und die Anforderungen etwa von Spieleentwicklern besser abbilden. Die arbeiten oft mit großen Binärdateien für Modelle und Texturen.

Gerade die sind allerdings ein Schwachpunkt etwa von Git, für den es einen eigenen Workaround gibt(öffnet im neuen Fenster). Lore bringt die entsprechende Unterstützung gleich mit und soll besonders bei der Deduplikation, also dem Vermeiden doppelt gespeicherter Dateien, besser sein. Das System verlässt sich hier nicht auf Heuristiken, sondern vergibt individuelle Datei-IDs. Lore betrachtet zudem alle Dateien erst einmal als reine Binärdateien. Textorientierte Features wie die Hervorhebung von Änderungen sind darauf aufgesetzt.

Versionsverwaltung und Speicher sind dabei zwei getrennte Subsysteme, wodurch sich Lore insbesondere besser auf verteilten Systemen nutzen lassen soll. Das Speichersystem kann dabei auch unabhängig von der Versionierung genutzt werden, etwa um Binärdateien auszuliefern. Speicher- und Transportschicht sind nicht fest vorgegeben, sondern werden über Backends implementiert.

Ein moderneres Git

Auch sollen bei Lore sogenannte Sparse Checkouts, bei denen große Dateien nur bei Bedarf heruntergeladen werden, flexibler möglich sein als bei Git. Daneben greift das Design einige neuere Entwicklungen auf.

Beim Lesen des Designdokuments(öffnet im neuen Fenster) ergibt sich der Eindruck, dass Epics Versionskontrollsystem ein moderneres Git ist: Auch Lore ist inhaltsadressiert (content addressed), wofür Hashes der versionierten Dateien verwendet werden. Die Versionsgeschichte bilden beide über einen Merkle-Baum(öffnet im neuen Fenster) ab. Als Hash-Funktion nutzt Lore Blake3(öffnet im neuen Fenster), was als sehr sicher gilt und gut parallelisierbar ist.

Geschrieben ist Lore in Rust, die Kommunikation mit dem Server erfolgt ausschließlich per API (Application Programming Interface). Das soll sicherstellen, dass unabhängig vom für den Zugriff genutzten Tool alle Features nutzbar sind. Das Kommandozeilenwerkzeug etwa übersetzt entsprechend einfach textuelle Kommandos in entsprechende API-Rufe. API-Bindings existieren für C#, Go, Javascript und Python. Der Code ist unter MIT-Lizenz veröffentlicht, aktuell aber noch in Entwicklung, weshalb sich Schnittstellen und Speicherformate noch ändern können.


Relevante Themen