Git-Alternative: Epic Games veröffentlicht Versionsverwaltung Lore
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.
- Anzeige Hier geht es zum Handbuch für Softwareentwickler bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.


