Üç aylıq inkişafdan sonra Git 2.46 versiyası nəşr olunub. Git, fleksibıl qeydlərin inkişafını təmin edən, ən məşhur, etibarlı və yüksək məhsuldar versiya idarəetmə sistemlərindən biridir. Versiyaların özülü olan bölmələr və birləşmələrlə qeydlərin qeyri-xətlinin inkişafına imkan tanıyır. Hər bir komitdə, əvvəlki tarixlərin tamlığını və geriyə doğru dəyişikliklərə qarşı dayanıqlığı təmin etmək üçün tam əvvəlki tarixlərin dolayı hash-alması tətbiq edilir; ayrıca, inkişaf etdiricilərin müəyyən etiketlər və komitlər üçün dijital imzaları təsdiq etməsi də mümkündür. Git kodu GPLv2+ lisenziyası altında yayılır.
Ötən versiya ilə müqayisədə yeni versiyaya 96 inkişaf etdirici tərəfindən hazırlanmış 746 dəyişiklik daxil edilib, bunlardan 31 nəfər ilk dəfə olaraq iştirak edir. Əsas yeniliklər:
- Yeni tipli bit xəritələrinin, "pseudo-merge reachability bitmap" adlanan eksperimental dəstəyi əlavə edilib; burada, "reachability bitmap" strukturundan fərqli olaraq, komitlərlə əlaqəli obyektlərin dəstləri, hər bir komitə ilə müvafiq deyil, bir neçə komitlə bağlı olaraq saxlanılır. Bu cür təşkilat, böyük repozitoriyalarda komitlər üçün obyektləri müəyyənləşdirmək üçün tək bir bit xəritəsindən istifadə etməyə imkan tanıyır, bu da bir çox ayrı bit xəritələrinin yaradılmasını aradan qaldırır və "git fetch", "git rev-list" və "git clone" kimi əməliyyatlar zamanı mü clientes göndərilməli olan obyektlərin müəyyənləşdirilməsi üçün obyektlərin dolanmasını əhəmiyyətli dərəcədə sürətləndirir. Yeni tipli bit xəritələrinin daxil edilməsi və onların seçilməsi və istifadəsi üçün bir sıra "bitmapPseudoMerge" konfiqurasiyaları təklif edilir: git config bitmapPseudoMerge.all.pattern ‘refs/(heads|tags)/’ git config bitmapPseudoMerge.all.threshold now git config bitmapPseudoMerge.all.stableThreshold never git repack -adb
- "git config" komandası üçün yeni bir komandada interfeysi həyata keçirilib, burada konfiqurasiyaların və bölmələrin, məsələn, "--get", "--get-all", "--unset" və "--remove-section" kimi ayrı-ayrı seçimlərdən fərqli olaraq, bir sıra ayrı subkomandalar təklif olunur. Məsələn, repozitoriyanın bütün konfiqurasiyalarını çəkmək üçün indi "git config list" komandasından istifadə edilə bilər, müəyyən bir parametrin məzmununu görmək üçün isə "git config get " komandasını istifadə etmək mümkündür. Nəticələrin əlavə filtri üçün "--regexp" seçimi ilə müntəzəm ifadəyə əsaslanan bir filtri تənzimləyə bilərsiniz.
- Abunəlik məlumatlarını məhdud girişə malik olan anbarlara ötürmək üçün istifadə olunan "credential helper" protokoluna "authtype" və "credential" adlı yeni sahələrin dəstəyi əlavə edilib. Bu, HTTP autentifikasiya sistemləri üçün, yalnız istifadəçi adı və parol yoxlaması ilə məhdudlaşmadan, Bearer Token istifadə edərək OAuth 2.0-da işləyən emalçılar yaratmağa imkan tanıyır. Daha əvvəl, belə autentifikasiya sistemləri ilə işləmək üçün gizli məlumatları http.extraHeader parametrində açıq şəkildə göstərmək lazım idi. Bundan əlavə, protokola NTLM və Kerberos kimi çoxmərhələli autentifikasiya metodlarının dəstəklənməsi üçün hər bir uşaq emalçısının vəziyyətini saxlamaq imkanı əlavə edilib.
- Anbar daxilində budaqların və etiketlərin bağlantılarını səmərəli şəkildə saxlamaq üçün "reftable" eksperimental arxa sisteminin inkişafı davam edir. Bu arxa sistem JGit layihəsi tərəfindən istifadə olunan blok saxlama texnologiyasını istifadə edir və çox sayda bağlantının saxlanması üçün optimallaşdırılıb (ənənəvi bağlantı saxlama formatları, çox sayda bağlantıya sahib anbarlarda ciddi xərclərə səbəb olur, çünki bu, $GIT_DIR/refs kataloqunda çox sayda faylın yerləşdirilməsi ilə bağlıdır və ya $GIT_DIR/packed_refs faylında hər yeniləmə zamanı bir böyük faylın yenidən yazılmasını tələb edir). Yeni versiyada "git refs migrate —ref-format=reftable" əmri, mövcud anbarları "reftable" arxa sisteminə köçürmək üçün əlavə edilib (əvvəllər arxa sistem yalnız anbarın yaradılması zamanı daxil edilirdi).
- Git komandasına "—no-advice" seçimi əlavə edilib ki, bu da avtomatlaşdırılmış git çağırışı zamanı dəstəkləyici məlumatların logu aşırı yükləməsinin qarşısını almaq üçün faydalı ola bilər.
- Bəzi yoxlamaların test dəstindən unit-test istifadəsinə keçirilməsi prosesi başlamışdır ki, bu da aşağı səviyyəli komponentlərin test edilməsi prosesini asanlaşdıracaq və Windows platformasında testlərin icrası zamanı böyük sayda proseslərin işə salınması zərurətini aradan qaldıracaq.
- Rəng konfiqurasiyaları üçün kodun parçalanmasına "#RGB" görünüşü ilə yanaşı "#RRGGBB" istifadəsi imkanı əlavə edilib.
Mənbə: opennet.ru
