Epic Games har lansert et versjonskontrollsystem for Lore.

Epic Games har gjort sitt sentraliserte versjonskontrollsystem, Lore, til åpen kildekode, som tidligere var inkludert i verktøysettet Unreal Editor for Fortnite (UEFN) under navnet Unreal Revision Control. Systemet er optimalisert for bruk i utvikling av prosjekter som kombinerer kildekode med svært store ikke-tekstfiler. For eksempel er Lore egnet for dataspillutvikling, som krever samarbeid om ressurser som teksturer, 3D-modeller og lyddata. Siden det er problematisk å slå sammen forskjellige versjoner av ikke-tekstfiler, organiseres samarbeidet ved å sette en eksklusiv lås, som forhindrer at flere bidragsytere redigerer ressursen samtidig. Prosjektets kode er skrevet i Rust og distribueres under MIT-lisensen.

Systemet er skalerbart for team av varierende størrelse og kan kjøres på en utviklers datamaskin ved å kjøre en enkelt kjørbar fil uten eksterne avhengigheter, eller distribueres som en sentralisert server for å koordinere arbeidet til svært store team.
Lore består av to systemer: et undersystem for datalagring og et undersystem for versjonskontroll som er ansvarlig for å opprette revisjoner, grener og sammenslåingsoperasjoner.

Lagringssystemet består av to lagringsmotorer: et uforanderlig innholdslager med hash-adressering og et nøkkel-/verdilager for dynamiske metadata, for eksempel forgreningspekere. Ulike backend-systemer kan kobles til for å lagre data på en sentralisert server og sikre feiltoleranse. For eksempel kan AWS S3 brukes til permanent lagring og DynamoDB til metadata.

For å representere depotets tilstand og sikre revisjonskjedenes uforanderlighet, brukes en Merkle-trestruktur, der hver gren verifiserer alle underliggende grener og noder ved hjelp av trelignende hashing. Depotdata adresseres av innholdshasher, noe som forenkler sammenligninger og integritetskontroll. Hashen til hver revisjon omfatter den tilhørende tilstanden, hashene til de overordnede revisjonene og datahashene. Store filer lagres i fragmenter.

Funksjoner som er typiske for versjonskontrollsystemer tilbys, for eksempel commits, staging drafts, branching og endringsevaluering. Avansert funksjonalitet inkluderer: brukertilgangskontroll; konfliktløsning; deduplisering på fragmentnivå; muligheten til å arbeide med en ufullstendig kopi av arbeidstreet (manglende data lastes inn etter behov); mellomlagring av lagrede data; lette forgreningsoperasjoner og rask bytting mellom grener (grener implementeres gjennom lenker, noe som ikke fører til dataduplisering).

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig webhotell med DDoS-beskyttelse, VPS VDS-servere | ProHoster