Git 2.41 inkqubo yokulawula umthombo ekhoyo

Emva kweenyanga ezintathu zophuhliso, inkqubo yokulawula umthombo osasaziweyo iGit 2.41 ikhululwe. I-Git yenye yezona zinto zidumileyo, ezinokwethenjelwa kwaye zisebenza kakhulu kwiinkqubo zokulawula iinguqulelo, ezibonelela ngezixhobo eziguquguqukayo zophuhliso ezingangqameneyo ezisekelwe kwi-branching kunye nokudibanisa. Ukuqinisekisa intembeko yembali kunye nokuchasa utshintsho retroactive, hashing efihlakeleyo yonke imbali yangaphambili kwisibophelelo ngasinye kusetyenziswa, kwaye kuyenzeka ukuba baqinisekise iithegi ngamnye kwaye uzibophelele kunye utyikityo digital abaphuhlisi.

Xa kuthelekiswa nokukhululwa kwangaphambili, inguqu entsha yayiquka utshintsho lwe-542, olulungiselelwe ngokuthatha inxaxheba kwabaphuhlisi be-95, apho i-29 ithatha inxaxheba ekuphuhliseni okokuqala. Iinguqulelo eziphambili:

  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° нСдостиТимых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (unreachable), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ссылки (Π½Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ Ρ‚Π΅Π³ΠΈ). НСдостиТимыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ сборщиком мусора, Π½ΠΎ Π΄ΠΎ удалСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ врСмя ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ состояний Π³ΠΎΠ½ΠΊΠΈ. Для отслСТивания ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° нахоТдСния нСдостиТимых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° привязка ΠΊ Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠΊ с Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ измСнСния ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ Π½Π΅ позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΎΠ΄Π½ΠΎΠΌ pack-Ρ„Π°ΠΉΠ»Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‰Π΅Π΅ врСмя измСнСния. Π Π°Π½Π΅Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ нСдостиТимый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ сохранялся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ большого числа свСТих нСдостиТимых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π΅Ρ‰Ρ‘ Π½Π΅ ΠΏΠΎΠ΄ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅. Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС для ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ нСдостиТимых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ задСйствован ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Β«cruft packsΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС нСдостиТимыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΌ pack-Ρ„Π°ΠΉΠ»Π΅, Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ Β«.mtimesΒ» ΠΈ связываСмой ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ индСксного Ρ„Π°ΠΉΠ»Π° с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ Β«.idxΒ».
    Git 2.41 inkqubo yokulawula umthombo ekhoyo
  • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° дискС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ индСкса (revindex) для pack-Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΡ€ΠΈ тСстировании Π½Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ torvalds/linux ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ индСкса ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ рСсурсоёмкиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Β«git pushΒ» Π² 1.49 Ρ€Π°Π·Π°, Π° простыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ вычислСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Β«git cat-file β€”batch=’%(objectsize:disk)'Β» Π² 77 Ρ€Π°Π·. Π€Π°ΠΉΠ»Ρ‹ (Β«.revΒ») с ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ индСксом Π±ΡƒΠ΄ΡƒΡ‚ сохранСны Π²Π½ΡƒΡ‚Ρ€ΠΈ рСпозитория Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Β«.git/objects/packΒ».

    Напомним, Ρ‡Ρ‚ΠΎ Git Ρ…Ρ€Π°Π½ΠΈΡ‚ всС Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…. Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² pack-Ρ„Π°ΠΉΠ»Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… информация прСдставлСна Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ git fetch ΠΈ git push). Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ pack-Ρ„Π°ΠΉΠ»Π° создаётся индСксный Ρ„Π°ΠΉΠ» (.idx), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΡ‡Π΅Π½ΡŒ быстро ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ смСщСниС Π² pack-Ρ„Π°ΠΉΠ»Π΅, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ хранится Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

    Π’ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΉ Π² Π½ΠΎΠ²ΠΎΠΌ выпускС ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ индСкс Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ процСсса опрСдСлСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² pack-Ρ„Π°ΠΉΠ»Π΅. Π Π°Π½Π΅Π΅ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ Π½Π° Π»Π΅Ρ‚Ρƒ Π²ΠΎ врСмя Ρ€Π°Π·Π±ΠΎΡ€Π° pack-Ρ„Π°ΠΉΠ»Π° ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² памяти, Ρ‡Ρ‚ΠΎ Π½Π΅ позволяло ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ индСксы ΠΈ Π²Ρ‹Π½ΡƒΠΆΠ΄Π°Π»ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ индСкс ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ построСния индСкса сводится ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ массива ΠΈΠ· ΠΏΠ°Ρ€ Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-позиция» ΠΈ Π΅Π³ΠΎ сортировкС ΠΏΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… pack-Ρ„Π°ΠΉΠ»ΠΎΠ².

    НапримСр, опСрация Π²Ρ‹Π²ΠΎΠ΄Π° содСрТимого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ прямой индСкс, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ Π² 62 Ρ€Π°Π·Π° быстрСС, Ρ‡Π΅ΠΌ опСрация ΠΏΠΎΠΊΠ°Π·Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ связи ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π½Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ. ПослС использования ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ индСкса ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ стали Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ врСмя. ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ индСксы Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ fetch ΠΈ push Π·Π° счёт прямой ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… с диска.

    Git 2.41 inkqubo yokulawula umthombo ekhoyo

  • Π’ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Β«credential helperΒ», примСняСмый для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ обращСния ΠΊ рСпозиторям c ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ доступом, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² WWW-Authenticate ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ сСрвисом, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ производится аутСнтификация. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° WWW-Authenticate позволяСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ scope-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ OAuth для Π±ΠΎΠ»Π΅Π΅ Π³Ρ€Π°Π½ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ раздСлСния доступа ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊ рСпозиториям ΠΈ разграничСния областСй, доступных для запросов.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ for-each-ref Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция форматирования Β«%(ahead-behind:<base>)Β», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ свСдСния ΠΎ числС ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΈΠ»ΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ (Π½Π° сколько ΠΎΠ΄Π½Π° Π²Π΅Ρ‚ΠΊΠ° отстаёт ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²). Π Π°Π½Π΅Π΅ для получСния ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π²Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: Β«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) %(ahead-behind:origin/HEAD)’ \ refs/heads/tb/ | column -t tb/cruft-extra-tips 2 96 tb/for-each-refβ€”exclude 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)Β» behind=Β»$(git rev-list β€”count $ref..origin/HEAD)Β» printf Β«%s %d %d\nΒ» Β«$refΒ» Β«$aheadΒ» Β«$behindΒ» done | column -t tb/cruft-extra-tips 2 96 tb/for-each-refβ€”exclude 16 96 tb/roaring-bitmaps 47 3
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git fetchΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция Β«β€”porcelainΒ», ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ формируСтся Π²Ρ‹Π²ΠΎΠ΄ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Β«<flag> <old-object-id> <new-object-id> <local-reference>Β», ΠΌΠ΅Π½Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ для Ρ€Π°Π·Π±ΠΎΡ€Π° Π² скриптах.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° настройка Β«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.

umthombo: opennet.ru

Yongeza izimvo