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

Π’ сравнСниС с ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΎΡ‚ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия ΠΏΡ€ΠΈΠ΅ΠΌΠ° 505 ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ ΠΎΡ‚ 100 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ 33 участват Π·Π° ΠΏΡŠΡ€Π²ΠΈ ΠΏΡŠΡ‚ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Git.

Основни нововъвСдСния (github.blog, gitlab.com/blog, gitlab.com/git-scm):

  • По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° 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=<commit> ΠΈ стартиранС Π½Π° git rebase β€”autosquash <commit>~.
  • Π—Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° 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=<n>, tree:0, object:type=<type>, sparse:<oid> ΠΈ 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=<N> Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° броя Π½Π° Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΈΡ‚Π΅ Π»ΠΈΠ½ΠΈΠΈ ΠΏΡ€ΠΈ визуализация Π½Π° ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅Ρ‚Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява оставянС Π½Π° място Π½Π° Π΅ΠΊΡ€Π°Π½Π° Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΠΊΠΎΠΌΠΈΡ‚ΠΈΡ‚Π΅ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° с голям Π±Ρ€ΠΎΠΉ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅.

…
* | | | | 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>, която позволява ΠΈΠ·Π±ΠΎΡ€ Π½Π° N Π½Π°ΠΉ-стари ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

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

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