Epic Games wis mbukak sistem kontrol versi terpusat, Lore, sing sadurunge kalebu ing toolkit Unreal Editor for Fortnite (UEFN) kanthi jeneng Unreal Revision Control. Sistem iki dioptimalake kanggo digunakake ing pangembangan proyek sing nggabungake kode sumber karo file non-teks sing gedhe banget. Contone, Lore cocok kanggo pangembangan game komputer, sing mbutuhake karya kolaboratif ing aset kayata tekstur, model 3D, lan data swara. Amarga nggabungake versi file non-teks sing beda-beda iku masalah, kolaborasi diatur kanthi nyetel kunci eksklusif, nyegah pirang-pirang kontributor nyunting sumber daya kanthi bebarengan. Kode proyek kasebut ditulis ing Rust lan disebarake miturut lisensi MIT.
Sistem iki bisa diskalakake kanggo tim kanthi macem-macem ukuran lan bisa dilakokake ing komputer pangembang kanthi mbukak file sing bisa dieksekusi tanpa katergantungan eksternal, utawa disebarake minangka server terpusat kanggo koordinasi karya tim sing gedhe banget.
Lore kasusun saka rong sistem: subsistem panyimpenan data lan subsistem kontrol versi sing tanggung jawab kanggo nggawe revisi, cabang, lan operasi penggabungan.
Subsistem panyimpenan kasusun saka rong mesin panyimpenan: panyimpenan konten sing ora bisa diowahi kanthi alamat hash lan panyimpenan kunci/nilai kanggo metadata dinamis, kayata pointer cabang. Macem-macem backend bisa disambungake kanggo nyimpen data ing server terpusat lan njamin toleransi kesalahan. Contone, AWS S3 bisa digunakake kanggo panyimpenan persisten, lan DynamoDB kanggo metadata.
Kanggo makili status repositori lan njamin keabadian rantai revisi, struktur Merkle Tree digunakake, ing ngendi saben cabang verifikasi kabeh cabang lan simpul sing ndasari nggunakake hashing kaya wit. Data repositori ditangani dening hash konten, sing nyederhanakake perbandingan lan pamriksan integritas. Hash saben revisi nyakup status sing ana gandhengane, hash revisi induk, lan hash data. File gedhe disimpen ing fragmen.
Fitur-fitur khas sistem kontrol versi sing disedhiyakake, kayata commit, staging draft, branching, lan evaluasi owah-owahan. Fungsi canggih kalebu: kontrol akses pangguna; resolusi konflik; deduplikasi tingkat fragmen; kemampuan kanggo nggarap salinan wit kerja sing ora lengkap (data sing ilang dimuat yen perlu); caching data sing disimpen; operasi branching entheng lan switching cepet antarane cabang (cabang dileksanakake liwat link, sing ora nyebabake duplikasi data).
Source: opennet.ru
