Epic Games, əvvəllər Unreal Redaktor for Fortnite (UEFN) alətlər dəstinə Unreal Revision Control adı altında daxil edilmiş mərkəzləşdirilmiş versiya idarəetmə sistemi Lore-u açıq mənbəli etdi. Sistem, mənbə kodunu çox böyük qeyri-mətn faylları ilə birləşdirən layihələrin hazırlanmasında istifadə üçün optimallaşdırılıb. Məsələn, Lore, teksturalar, 3D modellər və səs məlumatları kimi aktivlər üzərində birgə iş tələb edən kompüter oyunlarının hazırlanması üçün uyğundur. Mətn olmayan faylların müxtəlif versiyalarının birləşdirilməsi problemli olduğundan, əməkdaşlıq birdən çox iştirakçının resursu eyni vaxtda redaktə etməsinin qarşısını alan eksklüziv kilidləmə ilə təşkil edilir. Layihənin kodu Rust dilində yazılıb və MIT lisenziyası altında paylanır.
Sistem müxtəlif ölçülü komandalar üçün miqyaslana bilər və xarici asılılıqlar olmadan tək bir icra edilə bilən faylı işlətməklə və ya çox böyük komandaların işini əlaqələndirmək üçün mərkəzləşdirilmiş server kimi yerləşdirilməklə geliştiricinin kompüterində işlədilə bilər.
Lore iki sistemdən ibarətdir: məlumatların saxlanması alt sistemi və düzəlişlər, filiallar və birləşmə əməliyyatları yaratmaqdan məsul olan versiyaya nəzarət alt sistemi.
Saxlama altsistemləri iki saxlama mühərrikindən ibarətdir: heş ünvanlaması olan dəyişməz məzmun anbarı və budaq göstəriciləri kimi dinamik metaməlumatlar üçün açar/dəyər anbarı. Mərkəzləşdirilmiş serverdə məlumatları saxlamaq və xətaya dözümlülüyü təmin etmək üçün müxtəlif arxa planlar qoşula bilər. Məsələn, AWS S3 davamlı saxlama üçün, DynamoDB isə metaməlumatlar üçün istifadə edilə bilər.
Repozitoriyanın vəziyyətini təmsil etmək və reviziya zəncirinin dəyişməzliyini təmin etmək üçün hər bir budağın ağaca bənzər heşləmə istifadə edərək bütün əsas budaqları və qovşaqları yoxladığı Merkle Ağacı strukturu istifadə olunur. Repozitoriya məlumatları məzmun heşləri ilə həll olunur və bu da müqayisələri və bütövlüyün yoxlanılmasını sadələşdirir. Hər bir reviziyanın heşi onunla əlaqəli vəziyyətini, ana reviziyalarının heşlərini və məlumat heşlərini əhatə edir. Böyük fayllar fraqmentlərdə saxlanılır.
Versiya idarəetmə sistemlərinə xas xüsusiyyətlər, məsələn, commit-lər, layihələrin səhnələşdirilməsi, budaqlanma və dəyişikliklərin qiymətləndirilməsi təmin edilir. Qabaqcıl funksionallığa aşağıdakılar daxildir: istifadəçi girişinə nəzarət; münaqişələrin həlli; fraqment səviyyəsində təkrarlanmanın aradan qaldırılması; işçi ağacın natamam nüsxəsi ilə işləmək imkanı (itkin məlumatlar lazım olduqda yüklənir); saxlanılan məlumatların keşlənməsi; yüngül budaqlanma əməliyyatları və budaqlar arasında sürətli keçid (budaqlar məlumatların təkrarlanmasına səbəb olmayan bağlantılar vasitəsilə həyata keçirilir).
Mənbə: opennet.ru
