Π˜Π·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Git 2.55 с Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Rust

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½ Π΅ Ρ€Π΅Π»ΠΈΠ· Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°Ρ‚Π° систСма Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈ тСкстовС Git 2.55. Π‘Ρ€Π΅Π΄ основнитС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ: Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° компилация с Rust, рСализация Π½Π° fsmonitor Π·Π° Linux, Π½ΠΎΠ²Π° стратСгия Π·Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° инкрСмСнталния MIDX индСкс, ΠΊΠΎΠΌΠ°Π½Π΄Π° β€žgit history fixupβ€œ Π·Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΈΡ‚, оптимизация Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π±ΠΈΡ‚ΠΎΠ²ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ изпълнСниС Π½Π° hook-ΠΎΠ²Π΅ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° β€žgit format-revβ€œ. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° Git сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· GPLv2+.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΎ с прСдходния выпуск, Π² Π½ΠΎΠ²Π°Ρ‚Π° вСрсия са ΠΏΡ€ΠΈΠ΅Ρ‚ΠΈ 505 измСнСния, ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ с участиСто Π½Π° 100 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, 33 ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ Π²Π·ΠΈΠΌΠ°Ρ‚ участиС Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Git Π·Π° ΠΏΡŠΡ€Π²ΠΈ ΠΏΡŠΡ‚. Основни нововъвСдСния (1, 2, 3):

  • По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° Rust. ΠšΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΡŠΡ‚ rustc
    Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π² списъка Π½Π° зависимоститС Π·Π° компилация. Π—Π° компилация Π±Π΅Π· Rust ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ„Π»Π°Π³Π° β€žNO_RUST=1β€œ ΠΏΡ€ΠΈ стартиранС Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° make ΠΈΠ»ΠΈ β€ž-Drust=disabledβ€œ ΠΏΡ€ΠΈ изпълнСниС Π½Π° β€žmeson configureβ€œ. Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° компилацията с Rust Ρ‰Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Π΄ΠΎ вСрсия Git 3.0, Π² която Rust Ρ‰Π΅ станС Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½Π° зависимост. На Rust Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° прослойка Π·Π° прСносимост ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с Ρ…Π΅ΡˆΠΎΠ²Π΅ SHA-1 ΠΈ SHA-256, Π° ΡΡŠΡ‰ΠΎ ΠΈ някои Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ†Π΅Π»ΠΈ числа с ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° дълТина. Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ сС ΠΎΡ‡Π°ΠΊΠ²Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΡ€Π°Π²ΠΊΠ° Π½Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° Git Π½Π° Rust.
  • Π’ СкспСримСнталната ΠΊΠΎΠΌΠ°Π½Π΄Π° β€žgit historyβ€œ, която прСдоставя Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° прСнаписванС Π½Π° историята Π½Π° измСнСнията, Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° опСрацията β€žgit history fixupβ€œ Π·Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΈΡ‚. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡΡ‚Π° β€žfixupβ€œ позволява ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° измСнСния, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Ρ‡Ρ€Π΅Π· β€žgit addβ€œ, Π² ΠΏΠΎ-Ρ€Π°Π½Π΅Π½ ΠΊΠΎΠΌΠΈΡ‚ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ прСнаписванС Π½Π° всички послСдващи ΠΊΠΎΠΌΠΈΡ‚ΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° β€žgit commit β€”fixup=β€œ ΠΈ стартиранС Π½Π° β€žgit rebase β€”autosquash ~β€œ.
  • Π—Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Linux Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Ρ„ΠΎΠ½ΠΎΠ² процСс fsmonitor, ΠΊΠΎΠΉΡ‚ΠΎ слСди Π·Π° измСнСния Π² Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° inotify ΠΈ позволява Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π΅ ΠΎΠ±Ρ…ΠΎΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° цСлия Ρ€Π°Π±ΠΎΡ‚Π΅Π½ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΊΠ°Ρ‚ΠΎ β€žgit statusβ€œ. Π’ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Ρ‡Ρ€Π΅Π· настройката β€žcore.fsmonitorβ€œ.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«git repackΒ» Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌΡŠΡ‚ Β«β€”write-midx=incrementalΒ», Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‰ Π½ΠΎΠ²Π° стратСгия Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² инкрСмСнталния MIDX индСкс (multi-pack index), позволяваща Π΄Π° сС Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΡ‚ΠΎ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° цСлия индСкс. Π’ инкрСмСнталния ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ°ΠΊΠ΅Ρ‚Π΅Π½ индСкс вмСсто Π΅Π΄ΠΈΠ½ голям индСкс, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ информация Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ ΠΏΠΎ pack Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, сС ΠΏΡ€ΠΈΠ»Π°Π³Π° раздСлянС Π½Π° слоСвС β€” всСки слой ΠΎΠ±Ρ…Π²Π°Ρ‰Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π±Ρ€ΠΎΠΉ pack Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ bitmap Ρ„Π°ΠΉΠ». Подобна структура позволява Π΄Π° сС добавят Π΄Π°Π½Π½ΠΈ Π·Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ Π² Π½ΠΎΠ²ΠΈ pack Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, прикрСпяйки Π½ΠΎΠ²ΠΈ слоСвС към индСкса Π±Π΅Π· Π΄Π° сС прСнастройват Π²Π΅Ρ‡Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ слоСвС.

    ΠšΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«git repack β€”write-midx=incrementalΒ» позволява Π΄Π° сС Π΄ΠΎΠ±Π°Π²ΠΈ Π½ΠΎΠ² слой към инкрСмСнталния MIDX индСкс, ΠΎΠ±Ρ…Π²Π°Ρ‰Π°Ρ‰ наскоро създадСни pack Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. Π’ комбинация с Ρ€Π΅ΠΆΠΈΠΌΠ° Π·Π° ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Β«β€”geometricΒ», Π½ΠΎΠ²Π°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° прСдоставя Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° сС обСдинят Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΎΡ‚ няколко pack Ρ„Π°ΠΉΠ»Π° Π² Π΅Π΄ΠΈΠ½ ΠΏΠΎ-голям pack Ρ„Π°ΠΉΠ» ΠΈ ΠΏΡ€ΠΈ нСобходимост Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ ΠΈ сливанС Π½Π° няколко съсСдни слоя ΠΎΡ‚ инкрСмСнталния MIDX индСкс. Подобна стратСгия позволява ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Β«git repackΒ» Π΄Π° сС ΠΏΡ€Π΅ΠΏΠΈΡˆΠ°Ρ‚ само Π³ΠΎΡ€Π½ΠΈΡ‚Π΅ слоСвС, оставяйки старитС Π³ΠΎΠ»Π΅ΠΌΠΈ слоСвС Π½Π΅ΠΏΠΎΠΊΡŠΡ‚Π½Π°Ρ‚ΠΈ, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° сС ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈ Π½Π΅ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° ΠΎΡ‚ слоСвС, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΠΉΠΊΠΈ общия Π±Ρ€ΠΎΠΉ слоСвС Π½Π° Π½ΠΈΠ²ΠΎ, ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ Π½Π° Π»ΠΎΠ³Π°Ρ€ΠΈΡ‚ΡŠΠΌΠ° Π½Π° общия Π±Ρ€ΠΎΠΉ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ.

  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π° гСнСрацията Π½Π° Π±ΠΈΡ‚ΠΎΠ²ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° ΠΎΠ±Ρ…ΠΎΠ΄ Π½Π° Π΄ΡŠΡ€Π²ΠΎΡ‚ΠΎ ΠΎΡ‚ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π° ΠΈΠ·Π»ΠΈΡˆΠ½Π°Ρ‚Π° рСкурсия, ΠΊΠ΅ΡˆΠΈΡ€Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈΡ‚Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅, сортира Π±ΠΈΡ‚ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈ ΠΏΡ€Π΅Π΄ΠΈ тяхното ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ с опСрацията XOR ΠΈ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΊΠΎΠ΄Π° Π·Π° създаванС Π½Π° Π±ΠΈΡ‚ΠΎΠ²ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈ Π·Π° псСвдосливанС (pseudo-merge). Π’ тСстовото Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ…Π° Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π±ΠΈΡ‚ΠΎΠ²ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈ ΠΎΡ‚ 612 Π½Π° 294 сСкунди.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ изпълнСниС Π½Π° нСзависими Ρ…ΡƒΠΊΠΎΠ²Π΅ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. Π₯ΡƒΠΊΠΎΠ²Π΅Ρ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ влияят Π½Π° ΠΎΠ±Ρ‰ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ ΠΈΠ»ΠΈ Π³ΠΎ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ‚, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, промСнящи ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ към ΠΊΠΎΠΌΠΈΡ‚ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ инспСктиращи индСкситС ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΎΡ‚ΠΎ Π΄ΡŠΡ€Π²ΠΎ, Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Ρ…ΡƒΠΊΠΎΠ²Π΅Ρ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ провСряват с Π»ΠΈΠ½Ρ‚Π΅Ρ€Π° ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ unit-тСстовС, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС стартират ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ. Π₯ΡƒΠΊΠΎΠ²Π΅Ρ‚Π΅, допускащи ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ изпълнСниС, сС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚ Ρ‡Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° Β«hook.ΠΈΠΌΠ΅_Ρ…ΡƒΠΊΠ°.parallel = trueΒ». Броят Π½Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС стартират Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, сС опрСдСля Ρ‡Ρ€Π΅Π· настройкитС hook.jobs, hook..jobs ΠΈΠ»ΠΈ опцията Π·Π° командния Ρ€Π΅Π΄ Β«-jΒ».
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«git pack-objects β€”path-walkΒ» Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈ ΠΊΠ°Ρ‚ΠΎ Β«blob:noneΒ», Β«blob:limit=Β», Β«tree:0Β», Β«object:type=Β», Β«sparse:Β» ΠΈ Β«combine:Β». Π’ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ тСст, ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅Ρ‚ΠΎ Π½Π° Π±Π»ΠΎΠ±ΠΈ ΠΏΡ€ΠΈ изпълнСниС Π½Π° Β«β€”path-walkΒ» Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° формирания pack-Ρ„Π°ΠΉΠ» с 16%.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«git format-revΒ» Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, спомСнати Π² ΡΠΏΠΈΡΡŠΡ†ΠΈΡ‚Π΅ с ΠΊΠΎΠΌΠΈΡ‚ΠΈ ΠΈΠ»ΠΈ срСщащи сС Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ тСкст (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² Ρ…ΡƒΠΊΠΎΠ²Π΅ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠΌΠΈΡ‚ΠΈΡ‚Π΅).

    git last-modified | git format-rev β€”stdin-mode=text β€”format=%an

    Junio C Hamano builtin/commit.c

  • По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΎ Π΅ΠΊΡ€Π°Π½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ послСдоватСлности Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΈ тСкста Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅, ΠΏΡ€Π΅Π΄Π°Π²Π°Π½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€Π°.. ΠŸΡ€ΠΈ взаимодСйствиС с Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€ Ρ‚Π°ΠΊΠΈΠ²Π° escape-послСдоватСлности ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° скриванС ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ€Π΅Π· escape-послСдоватСлности Π·Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π½Π° курсора ΠΈ почистванС Π½Π° тСкста. ΠŸΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ°Ρ‚Π° Π½Π° escape-послСдоватСлности Π·Π° оцвСтяванС Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π΅ Π·Π°ΠΏΠ°Π·Π΅Π½Π°.
  • ΠšΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«git checkout -mΒ» Π²Π΅Ρ‡Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π·Π°ΠΏΠ°Π·Π²Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² stash-областта, Π±Π΅Π· Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«git pushΒ» Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° сС поставят ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ Π½Π° няколко външни Git-ΡΡŠΡ€Π²ΡŠΡ€Π° с Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°. НапримСр, Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΠΎΠ½Π° main Π½Π΅ само Π½Π° основния ΡΡŠΡ€Π²ΡŠΡ€, Π½ΠΎ ΠΈ Π½Π° ΠΎΠ³Π»Π΅Π΄Π°Π»Π°, ΠΌΠΎΠΆΠ΅ Π΄Π° сС създадС Π³Ρ€ΡƒΠΏΠ° Β«publishΒ» ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Β«githubΒ», Β«gitlabΒ» ΠΈ Β«mirrorΒ»:

    git config remotes.publish Β«github gitlab mirrorΒ»
    git push publish main

  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Β«git log β€”graphΒ» Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° опцията Β«β€”graph-lane-limit=Β» Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° броя Π½Π° Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΈΡ‚Π΅ Π»Π΅Π½Ρ‚ΠΈ ΠΏΡ€ΠΈ визуализация Π½Π° ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅Ρ‚Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява оставянСто Π½Π° място Π½Π° Π΅ΠΊΡ€Π°Π½Π° Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΠΊΠΎΠΌΠΈΡ‚ΠΈΡ‚Π΅ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° с голям Π±Ρ€ΠΎΠΉ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅.

    …
    * | | | | 619931f561 Merge branch β€˜dl/posix-unused-warning-clang’
    |\ \ \ \ \
    | * | | | ~ cf48887610 compat/posix.h: опростяванС Π½Π° GIT_GNUC_PREREQ() сравнСниС
    | * | | | ~ ffd45926dc compat/posix.h: почистванС Π½Π° GIT_GNUC_PREREQ() ΠΈ UNUSED
    |\ \ \ \ \~
    | * | | | ~ 3f5203eeb4 ls-files: Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° pathspec ΠΏΡ€Π΅Π΄ΠΈ lstat

  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ Β«git logΒ» ΠΈ Β«git rev-listΒ» Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° опцията Β«β€”max-count-oldest=, която позволява Π΄Π° сС ΠΈΠ·Π±Π΅Ρ€Π°Ρ‚ N Π½Π°ΠΉ-стари ΠΊΠΎΠΌΠΈΡ‚ΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster