Налична систСма Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° ΠΊΠΎΠ΄Π° Git 2.41

Π‘Π»Π΅Π΄ Ρ‚Ρ€ΠΈ мСсСца Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° бСшС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π° вСрсията Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°Ρ‚Π° систСма Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° ΠΊΠΎΠ΄Π° Git 2.41. Git Π΅ Π΅Π΄Π½Π° ΠΎΡ‚ Π½Π°ΠΉ-популярнитС, Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΠΈ високопроизводитСлни систСми Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° вСрсиитС, която прСдоставя гъвкави Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΈ инструмСнти Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° разклоняванС ΠΈ сливанС Π½Π° разклонСния. Π—Π° Π΄Π° сС Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° цСлостта Π½Π° историята ΠΈ устойчивостта Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ със Π·Π°Π΄Π½Π° Π΄Π°Ρ‚Π°, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠΌΠΏΠ»ΠΈΡ†ΠΈΡ‚Π½ΠΎ Ρ…Π΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° цялата ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π° история във всСки ΠΊΠΎΠΌΠΈΡ‚, ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ възмоТно Π΄Π° сС провСряват ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Ρ‚Π°Π³ΠΎΠ²Π΅ ΠΈ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ с Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΈ подписи ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅.

Π’ сравнСниС с ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° вСрсия, Π² Π½ΠΎΠ²Π°Ρ‚Π° вСрсия бяха ΠΏΡ€ΠΈΠ΅Ρ‚ΠΈ 542 ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ с участиСто Π½Π° 95 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ 29 участваха Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π·Π° ΠΏΡŠΡ€Π²ΠΈ ΠΏΡŠΡ‚. Основни ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ:

  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са посочСни Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ (Π½Π΅ сС спомСнават ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ ΠΈΠ»ΠΈ Ρ‚Π°Π³ΠΎΠ²Π΅). ΠΠ΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈΡ‚Π΅ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ сС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Ρ‚ ΠΎΡ‚ ΡΡŠΠ±ΠΈΡ€Π°Ρ‡Π° Π½Π° ΠΎΡ‚ΠΏΠ°Π΄ΡŠΡ†ΠΈ, Π½ΠΎ остават Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΏΡ€Π΅Π΄ΠΈ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅Ρ‚ΠΎ, Π·Π° Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π°Ρ‚ условия Π½Π° ΡΡŠΡΡ‚Π΅Π·Π°Π½ΠΈΠ΅. Π—Π° Π΄Π° сС слСди ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΡŠΡ‚ Π½Π° нСдостиТими ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΎΠ±Π²ΡŠΡ€ΠΆΠ°Ρ‚ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ към тях с Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° промяна Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ позволява ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ Π² Π΅Π΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ‚-Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΠΉΡ‚ΠΎ всички ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΈΠΌΠ°Ρ‚ ΠΎΠ±Ρ‰ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° промяна. ΠŸΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° всСки Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ ΠΎΠ±Π΅ΠΊΡ‚ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΡˆΠ΅ Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Ρ„Π°ΠΉΠ», ΠΊΠΎΠ΅Ρ‚ΠΎ водСшС Π΄ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Π°ΠΊΠΎ имашС голям Π±Ρ€ΠΎΠΉ Π½ΠΎΠ²ΠΈ Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ всС ΠΎΡ‰Π΅ Π½Π΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ…Π° Π½Π° ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Π½Π΅. Π’ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡŠΡ‚ β€žcruft packsβ€œ Π·Π° ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° всички Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ Π² Π΅Π΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅Π½ Ρ„Π°ΠΉΠ» ΠΈ отразяванС Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π·Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° модификация Π½Π° всСки ΠΎΠ±Π΅ΠΊΡ‚ Π² ΠΎΡ‚Π΄Π΅Π»Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΡΡŠΡ…Ρ€Π°Π½Π΅Π½Π° Π² Ρ„Π°ΠΉΠ» с Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ β€ž.mtimesβ€œ ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ Ρ‡Ρ€Π΅Π· индСксСн Ρ„Π°ΠΉΠ» с Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ β€ž.idxβ€œ.
    Налична систСма Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° ΠΊΠΎΠ΄Π° Git 2.41
  • По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π΅Π½ индСкс (revindex) Π½Π° диска Π·Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ. ΠšΠΎΠ³Π°Ρ‚ΠΎ тСствахмС Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ‚Π° torvalds/linux, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π΅Π½ индСкс Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ускорим рСсурсоСмкитС β€žgit pushβ€œ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с 1.49 ΠΏΡŠΡ‚ΠΈ ΠΈ прости ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ изчисляванС Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΠ±Π΅ΠΊΡ‚ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° β€žgit cat- file --batch='%(objectsize:disk)' Β» 77 ΠΏΡŠΡ‚ΠΈ. Π€Π°ΠΉΠ»ΠΎΠ²Π΅ (.rev) с ΠΎΠ±Ρ€Π°Ρ‚Π΅Π½ индСкс Ρ‰Π΅ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π²ΡŠΡ‚Ρ€Π΅ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π² дирСкторията ".git/objects/pack".

    Π‘ΠΏΠΎΠΌΠ½Π΅Ρ‚Π΅ си, Ρ‡Π΅ Git ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° всички Π΄Π°Π½Π½ΠΈ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС поставят Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. Π—Π° Π΄Π° сС повиши СфСктивността Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ, ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ сС поставят Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π² ΠΊΠΎΠΈΡ‚ΠΎ информацията сС прСдставя ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, слСдващи Π΅Π΄ΠΈΠ½ слСд Π΄Ρ€ΡƒΠ³ (ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡ€ΠΈ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ с git fetch ΠΈ git натисканС Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ). Π—Π° всСки ΠΏΠ°ΠΊΠ΅Ρ‚Π΅Π½ Ρ„Π°ΠΉΠ» сС създава индСксСн Ρ„Π°ΠΉΠ» (.idx), ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ позволява ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡŠΡ€Π·ΠΎ Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ отмСстванСто Π² пакСтния Ρ„Π°ΠΉΠ», Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π°Π΄Π΅Π½ ΠΎΠ±Π΅ΠΊΡ‚ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° ΠΎΠ±Π΅ΠΊΡ‚Π°.

    ΠžΠ±Ρ€Π°Ρ‚Π½ΠΈΡΡ‚ индСкс, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² Π½ΠΎΠ²Π°Ρ‚Π° вСрсия, Π΅ насочСн към Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° процСса Π½Π° опрСдСлянС Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° ΠΎΠ±Π΅ΠΊΡ‚Π° ΠΎΡ‚ информация Π·Π° мСстополоТСниСто Π½Π° ΠΎΠ±Π΅ΠΊΡ‚Π° Π² пакСтния Ρ„Π°ΠΉΠ». ΠŸΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° Ρ‚Π°ΠΊΠΎΠ²Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°ΡˆΠ΅ Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° пакСтния Ρ„Π°ΠΉΠ» ΠΈ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΡˆΠ΅ само Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ позволявашС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° индСкси ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠΆΠ΄Π°Π²Π°ΡˆΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡŠΡ‚ Π΄Π° сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° всСки ΠΏΡŠΡ‚. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡΡ‚Π° ΠΏΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° индСкс сС свСТда Π΄ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° масив ΠΎΡ‚ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΎΠ±Π΅ΠΊΡ‚-позиция ΠΈ сортиранСто ΠΌΡƒ ΠΏΠΎ позиция, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡ‚Π½Π΅ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

    НапримСр опСрацията Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, която ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ индСкс, бСшС 62 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π·Π° ΠΎΡ‚ опСрацията Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π·Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° позиция-към-ΠΎΠ±Π΅ΠΊΡ‚ Π½Π΅ бяха индСксирани. Π‘Π»Π΅Π΄ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° обратния индСкс Ρ‚Π΅Π·ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…Π° Π΄Π° ΠΎΡ‚Π½Π΅ΠΌΠ°Ρ‚ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅. ΠžΠ±Ρ€Π°Ρ‚Π½ΠΈΡ‚Π΅ индСкси ΡΡŠΡ‰ΠΎ Π²ΠΈ позволяват Π΄Π° ускоритС опСрацията ΠΏΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΏΡ€ΠΈ изпълнСниС Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ ΠΈ натисканС Ρ‡Ρ€Π΅Π· Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ диска.

    Налична систСма Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° ΠΊΠΎΠ΄Π° Git 2.41

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Ρ…Π΅Π΄ΡŠΡ€ΠΈ Π½Π° WWW-Authenticate ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€Π° Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ услугата Π·Π° удостовСряванС към ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° β€žΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈβ€œ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΡ€ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Ρ…Π΅Π΄ΡŠΡ€Π° WWW-Authenticate позволява ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΎΠ±Ρ…Π²Π°Ρ‚Π° Π½Π° OAuth Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½ΠΈ Π·Π° ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ раздСлянС Π½Π° потрСбитСлския Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Ρ…Π²Π°Ρ‚ΠΈΡ‚Π΅, Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π·Π° заявки.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° опция Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½Π΅ "%(Π½Π°ΠΏΡ€Π΅Π΄-ΠΎΡ‚Π·Π°Π΄: )", ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ информация Π·Π° броя Π½Π° Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ ΠΎΡ‚ΡΡŠΡΡ‚Π²Π°Ρ‰ΠΈΡ‚Π΅ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ»ΠΎΠ½, спрямо Π΄Ρ€ΡƒΠ³ ΠΊΠ»ΠΎΠ½ (ΠΊΠΎΠ»ΠΊΠΎ Π΅Π΄ΠΈΠ½ ΠΊΠ»ΠΎΠ½ изостава ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΡ€Π΅Π²Π°Ρ€Π²Π° Π΄Ρ€ΡƒΠ³ Π½Π° Π½ΠΈΠ²ΠΎ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ). ΠŸΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π·ΠΈ информация изисквашС Π΄Π²Π΅ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ: "git rev-list --count main..my-feature", Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ броя Π½Π° Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅, ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ Π·Π° Π΄Π°Π΄Π΅Π½ ΠΊΠ»ΠΎΠ½, ΠΈ "git rev-list --count my-feature.. main", Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ броя Π½Π° липсващитС Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ. Π‘Π΅Π³Π° Ρ‚Π°ΠΊΠΈΠ²Π° изчислСния ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ свСдСни Π΄ΠΎ Π΅Π΄Π½Π° инструкция, ΠΊΠΎΠ΅Ρ‚ΠΎ опростява ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π·Π° писанС ΠΈ намалява Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС. НапримСр, Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π½Π΅ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ ΠΈ Π΄Π° ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅ Π΄Π°Π»ΠΈ са Π·Π°Π΄ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ основния си ΠΊΠ»ΠΎΠ½, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π΅Π΄Π½ΠΎΡ€Π΅Π΄ΠΎΠ²: $ git for-each-ref --no-merged=origin/HEAD \ --format=' %(refname:short) %(Π½Π°ΠΏΡ€Π΅Π΄-ΠΎΡ‚Π·Π°Π΄:origin/HEAD)' \ refs/heads/tb/ | column -t tb/cruft-extra-tips 2 96 tb/for-each-refβ€”ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Ρ‚Π΅ 16 96 tb/roaring-bitmaps 47 3 вмСсто използвания ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° скрипт, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ 17 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±Π°Π²Π΅Π½: $ git for-each-ref - format='%(refname:short)' --no-merged=origin/HEAD \ refs/heads/tb | while read ref do ahead="$(git rev-list --count origin/HEAD..$ref)" back="$(git rev-list --count $ref..origin/HEAD)" printf "%s %d %d\n" "$ref" "$Π½Π°ΠΏΡ€Π΅Π΄" "$ΠΎΡ‚Π·Π°Π΄" Π³ΠΎΡ‚ΠΎΠ²ΠΎ | ΠΊΠΎΠ»ΠΎΠ½Π° -t tb/cruft-extra-tips 2 96 tb/for-each-refβ€”exclude 16 96 tb/roaring-bitmaps 47 3
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опция β€ž--porcelainβ€œ към ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€žgit fetchβ€œ, която Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΈΠ·Ρ…ΠΎΠ΄ във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ β€ž ”, ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Ρ‡Π΅Ρ‚Π»ΠΈΠ², Π½ΠΎ ΠΏΠΎ-ΡƒΠ΄ΠΎΠ±Π΅Π½ Π·Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π² скриптовС.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ настройка "fetch.hideRefs" Π·Π° ускоряванС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ "git fetch" Ρ‡Ρ€Π΅Π· скриванС Π½Π° част ΠΎΡ‚ Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅ Π² Π»ΠΎΠΊΠ°Π»Π½ΠΎΡ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° Π΅Ρ‚Π°ΠΏΠ° Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π»ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΠ» пълния Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ спСстява Π²Ρ€Π΅ΠΌΠ΅, ΠΊΠ°Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° само Π΄ΠΎ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ сС ΠΈΠ·Π²Π»ΠΈΡ‡Π°Ρ‚ Π΄Π°Π½Π½ΠΈ. НапримСр, ΠΏΡ€ΠΈ тСстванС Π½Π° систСма с Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ голям Π±Ρ€ΠΎΠΉ прослСдСни външни Π²Ρ€ΡŠΠ·ΠΊΠΈ, ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° всички Π²Ρ€ΡŠΠ·ΠΊΠΈ с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π΅Π·ΠΈ, адрСсирани Π΄ΠΎ $remote цСлСвия ΡΡŠΡ€Π²ΡŠΡ€, Π½Π°ΠΌΠ°Π»ΠΈ опСрацията "git fetch" ΠΎΡ‚ 20 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ Π½Π° 30 сСкунди. $ git -c fetch.hideRefs=refs -c fetch.hideRefs=!refs/remotes/$remote \ fetch $remote
  • ΠšΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° "git fsck" Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π° ΠΏΠΎΠ²Ρ€Π΅Π΄Π°, съвпадСниС Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π°Ρ‚Π° сума ΠΈ корСктността Π½Π° стойноститС Π² растСрни изобраТСния Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΈ индСкси.
  • ΠšΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° "git clone --local" Π²Π΅Ρ‡Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π° Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ ΠΎΠΏΠΈΡ‚ Π·Π° ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΎ символни Π²Ρ€ΡŠΠ·ΠΊΠΈ Π² $GIT_DIR.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€