Git 2.38 manbalarni boshqarish tizimining chiqarilishi

Git 2.38 tarqatilgan manbalarni boshqarish tizimining chiqarilishi e'lon qilindi. Git eng mashhur, ishonchli va yuqori unumli versiyalarni boshqarish tizimlaridan biri bo'lib, tarmoqlanish va birlashtirishga asoslangan moslashuvchan chiziqli bo'lmagan rivojlanish vositalarini taqdim etadi. Tarixning yaxlitligini va retroaktiv o'zgarishlarga chidamliligini ta'minlash uchun har bir topshiriqda butun oldingi tarixning yashirin xeshlanishi qo'llaniladi, shuningdek, ishlab chiquvchilarning raqamli imzolari bilan individual teglar va majburiyatlarni tasdiqlash mumkin.

Oldingi versiya bilan taqqoslaganda, yangi versiyada 699 ta ishlab chiquvchi ishtirokida tayyorlangan 92 ta o'zgartirish kiritilgan, ulardan 24 tasi birinchi marta ishlab chiqishda ishtirok etgan. Asosiy innovatsiyalar:

  • Asosiy tuzilma Microsoft tomonidan katta omborlarni boshqarish uchun ishlab chiqilgan "skalar" yordam dasturini o'z ichiga oladi. Yordamchi dastur dastlab C# tilida yozilgan, ammo git C tilida o'zgartirilgan versiyasini o'z ichiga oladi. Yangi yordamchi dastur git buyrug'idan sukut bo'yicha juda katta omborlar bilan ishlashda ishlashga ta'sir qiluvchi qo'shimcha funktsiyalar va sozlamalarni yoqishi bilan farq qiladi. Masalan, skalerdan foydalanganda u qo'llaniladi:
    • Repozitariyning to'liq bo'lmagan nusxasi bilan ishlash uchun qisman klonlash.
    • Fayl tizimidagi o'zgarishlarni kuzatish uchun o'rnatilgan mexanizm (FSMonitor), bu sizga butun ishchi katalog bo'ylab izlamasdan qilish imkonini beradi.
    • Turli paketli fayllardagi ob'ektlarni qamrab oluvchi indekslar (ko'p paketli).
    • ma'lumotlarga kirishni optimallashtirish uchun ishlatiladigan commit grafigi indeksli commit-graph fayllari.
    • Interaktiv seansni bloklamasdan, fonda omborning optimal strukturasini saqlab qolish bo'yicha davriy ish (ish masofaviy ombordan yangi ob'ektlarni proaktiv ravishda yuklab olish va faylni majburiy grafik bilan yangilash va qadoqlash jarayoni bilan soatiga bir marta amalga oshiriladi). ombor har kecha ishga tushadi).
    • Qisman klonlash paytida ruxsat etilgan naqshlarni cheklaydigan "sparseCheckoutCone" rejimi.
  • "git rebase" buyrug'iga --update-refs opsiyasi qo'shildi va kerakli majburiyatga o'tish uchun har bir qaram filialni qo'lda tekshirish kerak emas, balki ko'chirilayotgan filiallar bilan bir-biriga mos keladigan qaram shoxlarni yangilash uchun.
  • "git rm" buyrug'ini qisman indekslar bilan moslashtirdi.
  • Faylni "konus" rejimida qisman indekslari bo'lgan ish maydonidan ushbu rejimga ega bo'lmagan tashqi doiraga ko'chirishda "git mv AB" buyrug'ining ishlashi yaxshilandi.
  • Bitmap fayl formati katta omborlar bilan ishlash uchun optimallashtirilgan - tanlangan majburiyatlar va ularning ofsetlari ro'yxati bilan ixtiyoriy indeks jadvali qo'shilgan.
  • "git birlashma daraxti" buyrug'i yangi rejimni amalga oshiradi, bunda ikkita ko'rsatilgan majburiyatlar asosida birlashma natijasi bo'lgan daraxt hisoblab chiqiladi, go'yo bu topshiriqlar tarixi birlashtirilgan.
  • Boshqa git repozitariylari ichida yalang'och omborlarni (ishlaydigan daraxti bo'lmagan omborlar) joylashtirish imkoniyatini boshqarish uchun "safe.barerepository" sozlamasi qo'shildi. "Aniq" ga o'rnatilganda, faqat yuqori katalogda joylashgan yalang'och omborlar bilan ishlash mumkin bo'ladi. Yalang'och omborlarni pastki kataloglarga joylashtirish uchun "barchasi" qiymatidan foydalaning.
  • “git grep” buyrug‘i “-m” (“—max-count”) variantini qo‘shdi, bu GNU grep-dagi bir xil nomdagi variantga o‘xshash va ko‘rsatilgan moslik sonini cheklash imkonini beradi.
  • “ls-files” buyrug'i chiqish maydonlarini sozlash uchun “--format” variantini amalga oshiradi (masalan, ob'ekt nomini, rejimlarni va hokazolarni chiqarishni yoqishingiz mumkin).
  • "git cat-file" da ob'ektlar tarkibini ko'rsatishda pochta xaritasi faylida ko'rsatilgan muallif-elektron pochta ulanishlarini hisobga olish mumkin.

Manba: opennet.ru

a Izoh qo'shish