Epic Gamesek bere bertsio-kontrol sistema zentralizatua, Lore, kode irekikoa jarri du, lehen Unreal Editor for Fortnite (UEFN) tresna-kutxan sartuta zegoena Unreal Revision Control izenarekin. Sistema iturburu-kodea testuz kanpoko fitxategi handiekin konbinatzen duten proiektuak garatzeko optimizatuta dago. Adibidez, Lore egokia da ordenagailu-jokoen garapenerako, eta horrek testurak, 3D modeloak eta soinu-datuak bezalako aktiboetan lankidetza-lana eskatzen du. Testuz kanpoko fitxategien bertsio desberdinak batzea arazo bat denez, lankidetza blokeo esklusibo bat ezarriz antolatzen da, hainbat kolaboratzailek baliabidea aldi berean editatzea eragotziz. Proiektuaren kodea Rust-en idatzita dago eta MIT lizentziapean banatzen da.
Sistema eskalagarria da tamaina ezberdinetako taldeentzat eta garatzaile baten ordenagailuan exekutatu daiteke kanpoko menpekotasunik gabeko fitxategi exekutagarri bakarra exekutatuz, edo zerbitzari zentralizatu gisa zabaldu daiteke talde oso handien lana koordinatzeko.
Lore bi sistemaz osatuta dago: datuak biltegiratzeko azpisistema bat eta bertsio-kontrolerako azpisistema bat, berrikuspenak, adarrak eta batuketa-eragiketak sortzeaz arduratzen dena.
Biltegiratze azpisistemak bi biltegiratze motor ditu: hash helbideratzea duen eduki biltegi aldaezin bat eta metadatu dinamikoetarako gako/balio biltegi bat, hala nola adar-erakusleak. Hainbat backend konekta daitezke datuak zerbitzari zentralizatu batean gordetzeko eta akatsen tolerantzia bermatzeko. Adibidez, AWS S3 erabil daiteke biltegiratze iraunkorrerako, eta DynamoDB metadatuetarako.
Biltegiaren egoera irudikatzeko eta berrikuspen-katearen aldaezintasuna bermatzeko, Merkle Zuhaitz egitura bat erabiltzen da, non adar bakoitzak azpiko adar eta nodo guztiak egiaztatzen dituen zuhaitz itxurako hashing-a erabiliz. Biltegiko datuak eduki-hash-en bidez bideratzen dira, konparaketak eta osotasun-egiaztapena erraztuz. Berrikuspen bakoitzaren hash-ak bere egoera, gurasoen berrikuspenen hash-ak eta datuen hash-ak hartzen ditu barne. Fitxategi handiak zatitan gordetzen dira.
Bertsio-kontrol sistemen ohiko ezaugarriak eskaintzen dira, hala nola, konpromisoak, zirriborroak staging, adarkatzea eta aldaketen ebaluazioa. Funtzionalitate aurreratuen artean daude: erabiltzaileen sarbide-kontrola; gatazken ebazpena; zati-mailako deduplikazioa; lan-zuhaitzaren kopia osatugabe batekin lan egiteko gaitasuna (falta diren datuak behar den moduan kargatzen dira); gordetako datuen cachea; adarkatze-eragiketa arinak eta adarren arteko aldaketa azkarra (adarrak esteken bidez ezartzen dira, eta horrek ez du datuen bikoiztasunik eragiten).
Iturria: opennet.ru
