Git 2.29.0 SHA-256, qo'shimcha qurilmalar va boshqalarni eksperimental qo'llab-quvvatlaydi

Git - bu eng mashhur versiyalarni boshqarish tizimlaridan biri, Dalillanish va birlashishga asoslangan egiluvchan chiziqli bo'lmagan rivojlanish vositalarini ta'minlaydigan ishonchli va yuqori samaradorlik. Tarixning yaxlitligini va o'zgarishlarga qarshilikni "orqaga qaytarish" ni ta'minlash uchun har bir majburiyatda avvalgi tarixni yashirin xeshlashdan foydalaniladi, shuningdek individual teglar va majburiyatlarni ishlab chiquvchilarning raqamli imzolari bilan tasdiqlash mumkin.

Yaqinda uning yangi versiyasi "Git 2.29.0" e'lon qilindi va oldingi versiyasiga nisbatan, 627 ta o'zgartirishlar yangi tahrirda qabul qilindi, 89 ta ishlab chiquvchilar ishtirokida tayyorlangan, ulardan 24 tasi birinchi marta ishlab chiqishda qatnashgan.

Git 2.29.0 ta muhim voqealar

Ushbu yangi versiyada, SHA-256 xeshlash algoritmidan foydalanishning eksperimental variantini o'z ichiga oladi buzilgan SHA-1 o'rniga omborga ob'ektlarni yozishda. Xash Git-dagi har bir ob'ekt tarkibidan hosil bo'ladi va uning o'ziga xos identifikatori hisoblanadi. Ob'ekt ma'lumotlari yoki sarlavhalaridagi har qanday o'zgarish uning identifikatorining o'zgarishiga olib keladi. Xash algoritmida to'qnashuvlarning paydo bo'lishi nazariy jihatdan natijada xash bilan ikki xil ma'lumotlar to'plamining shakllanishini istisno etmaydi.

Afsuski, SHA-1 algoritmi sun'iy to'qnashuv shakllanishiga chidamli bo'lib chiqmadi, lekin SHA-1 to'qnashuvlarini manipulyatsiya qilish yo'li bilan Git-dagi ob'ektlarni almashtirishga haqiqiy hujumlarni amalga oshirish mumkin emas, chunki ajratilgan ob'ektni bekor qilish uchun bekor qilingan ob'ekt allaqachon to'qnashuv naqshini o'z ichiga olishi kerak, ya'ni o'zboshimchalik bilan blokni almashtirish mumkin emas.

Har bir to'qnashuv juda katta miqdordagi hisoblash manbalarini talab qiladiganligi sababli, allaqachon hisoblangan andozalar ma'lum to'qnashuvlarga olib keladigan va avvalroq Git-da ularni ob'ektlarda ishlatishga urinishlar tekshiruvi qo'shilgan.

Rivojlanishning ushbu bosqichida siz faqat SHA-1 va SHA-256 o'rtasida tanlov qilishingiz mumkin, ammo hozirgacha siz turli xil xeshlarni bir vaqtning o'zida omborda birlashtira olmaysiz. Bundan tashqari, hozirgi kunga kelib, hech qanday Git provayderi, shu jumladan GitHub, SHA-256 xeshlari bilan omborlarni qo'llab-quvvatlamaydi. Kelajakda ko'chirish xususiyatlarini qo'shish rejalari mavjud.

Ushbu yangi versiyadagi yana bir o'zgarish buyruqda "Git fetch" va "git push" qilganlarga eksklyuziv havola xususiyatlarini qo'llab-quvvatlaydi (refspec), mahalliy va tashqi omborlardagi filiallar o'rtasidagi bog'lanish huquqlarini kengaytiradi. Yo'naltiruvchi xususiyatlarni hisobga olmaganda, siz faqatgina tanlabgina qolmay, balki xaritalashdan ma'lum filiallarni chiqarib tashlashingiz kerak bo'lgan holatlarda foydali bo'lishi mumkin. Masalan, bitta "refs / heads / ref-to-exception" dan tashqari barcha "refs / heads / *" filiallarini tekshirish zarur bo'lganda, avval har bir filialni o'z ichiga olgan to'liq ro'yxatni ko'rsatish kerak edi.

"Git for-each-ref" ga yangi maydonlar qo'shildi ob'ekt nomi, turi va ididan tashqari, "-format" opsiyasi bilan belgilanishi mumkin. Masalan, qo'shilgan maydonlar tarkibi: hajmi, mavzusi: sanitarizatsiya va modifikator: qisqa ob'ekt identifikatorlarini ko'rsatish uchun qisqa. Shuningdek, havolalarni filtrlash uchun bir nechta "- birlashtirilgan" va "- birlashtirilmagan" argumentlarni ko'rsatishga ruxsat beriladi.

"Git birlashtirish" operatsiyasi paytida nizo yuzaga kelganda, xabar sarlavhasi endi aniqroq ajratish uchun to'rtburchak qavsda joylashgan Git diagnostika xabarlaridan ma'lumotlarni olish.

"Merge.renormalize" yangi sozlamasi qo'shildi, o'rnatilgandan so'ng, uch tomonlama kombinatsiyaning har bir bosqichi uchun chiqish va chiqish operatsiyalari amalga oshiriladi.

Git aloqa protokolining ikkinchi versiyasi orqaga qaytarildi, u 2.27-versiyada o'chirib qo'yilgan va mijoz Git-serverga masofadan ulanganda ishlatiladi. Barqarorlik muammolarini keltirib chiqaradigan xato aniqlandi va tuzatildi.

"-First-parent" opsiyasi "git bisect" buyrug'iga qo'shildi, que regressiv o'zgarish yuz bergan revizyonni aniqlash uchun ishlatiladi, ma'lum ishchi revizyon va muammo yuzaga kelgan reviziya o'rtasida o'tadigan majburiyatlar tanlovini o'zgartirish. Agar siz "-first-parent" ni belgilasangiz, faqat birlashtirilgan filialdagi majburiyatlar hisobga olinadi, chunki birlashtirish majburiyatining o'zi hisobga olinmaydi.

"Git index-pack" ichki buyrug'i samaradorligini oshirdi Ko'p yadroli tizimlarda indeksni qadoqlashni parallellashtirishda "git push" yoki "git fetch" ishlatilganda ishlatiladi.

Filiallar birlashtirilganda chiqariladigan "oldin $ dest" jumlasini "yuqoridagi oqimga $ dest" ga qo'shish uchun "in $ dest" iborasini qo'shishni boshqaradigan "merge.suppressDest" sozlamalari qo'shildi. sukut bo'yicha asosiy filial uchun).

"Contrib / mw-to-git" orqa qismidagi zaiflik aniqlandi MediaWiki-dan ma'lumotlarni surish va olish uchun (sukut bo'yicha qurilmagan). Muammo tajovuzkor nazorati ostida bo'lgan MediaWiki instansiyasiga kirishda kodning bajarilishini tashkil etishga imkon berdi.

Va nihoyat, agar siz bu haqda ko'proq bilmoqchi bo'lsangiz, tafsilotlarni tekshirishingiz mumkin Quyidagi havolada.


Maqolaning mazmuni bizning printsiplarimizga rioya qiladi muharrirlik etikasi. Xato haqida xabar berish uchun bosing bu erda.

Birinchi bo'lib izohlang

Fikringizni qoldiring

Sizning email manzilingiz chop qilinmaydi.

*

*

  1. Ma'lumotlar uchun javobgardir: Migel Anxel Gaton
  2. Ma'lumotlarning maqsadi: SPAMni boshqarish, izohlarni boshqarish.
  3. Qonuniylashtirish: Sizning roziligingiz
  4. Ma'lumotlar haqida ma'lumot: qonuniy majburiyatlar bundan mustasno, ma'lumotlar uchinchi shaxslarga etkazilmaydi.
  5. Ma'lumotlarni saqlash: Occentus Networks (EU) tomonidan joylashtirilgan ma'lumotlar bazasi
  6. Huquqlar: istalgan vaqtda siz ma'lumotlaringizni cheklashingiz, tiklashingiz va o'chirishingiz mumkin.