Выпуск систСмы управлСния исходными тСкстами Git 2.38

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ выпуск распрСдСлСнной систСмы управлСния исходными тСкстами Git 2.38. Git являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых популярных, Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹Ρ… ΠΈ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… систСм управлСния вСрсиями, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Π³ΠΈΠ±ΠΊΠΈΠ΅ срСдства Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΈ ΠΈ слиянии Π²Π΅Ρ‚ΠΎΠΊ. Для обСспСчСния цСлостности истории ΠΈ устойчивости ΠΊ измСнСниям «Π·Π°Π΄Π½ΠΈΠΌ числом» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ нСявноС Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ всСй ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ истории Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ удостовСрСниС Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌΠΈ подписями Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π³ΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΌ выпуском Π² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ принято 699 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ участии 92 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… 24 Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ приняли участиС Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π°:

  • Π’ основной состав Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° «scalar», разработанная ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Microsoft для управлСния ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ рСпозиториями. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»Π° написана Π½Π° языкС C#, Π½ΠΎ Π² git Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° языкС Π‘ΠΈ. Новая ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° отличаСтся ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй ΠΈ настроСк, Π²Π»ΠΈΡΡŽΡ‰ΠΈΡ… Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΡ‡Π΅Π½ΡŒ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ рСпозиториями. НапримСр, ΠΏΡ€ΠΈ использовании scalar примСняСтся:
    • ЧастичноС ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ рСпозитория.
    • ВстроСнный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ отслСТивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС (FSMonitor), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° всСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.
    • Π˜Π½Π΄Π΅ΠΊΡΡ‹, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Ρ€Π°Π·Π½Ρ‹Ρ… pack-Ρ„Π°ΠΉΠ»Π°Ρ… (multi-pack).
    • Π€Π°ΠΉΠ»Ρ‹ commit-graph с индСксом Π³Ρ€Π°Ρ„Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², примСняСмым для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ доступа ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ….
    • Π€ΠΎΠ½ΠΎΠ²Ρ‹Π΅ пСриодичСскиС Ρ€Π°Π±ΠΎΡ‚Ρ‹ для поддСрТания ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ структуры рСпозитория Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π½Π΅ блокируя ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ сСанс (Ρ€Π°Π· Π² час выполняСтся Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅ΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ свСТих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ рСпозитория ΠΈ обновлСнию Ρ„Π°ΠΉΠ»Π° с Π³Ρ€Π°Ρ„ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π½ΠΎΡ‡ΡŒ запускаСтся процСсс ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ рСпозитория).
    • Π Π΅ΠΆΠΈΠΌ «sparseCheckoutCone», ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ допустимыС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΏΡ€ΠΈ частичном ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «git rebase» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «—update-refs» для обновлСния зависимых Π²Π΅Ρ‚ΠΎΠΊ, ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‰ΠΈΡ…ΡΡ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹ΠΌΠΈ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ checkout ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ зависимой Π²Π΅Ρ‚ΠΊΠ΅ для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «git rm» с частичными индСксами.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «git mv A B» ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области с частичными индСксами Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ «cone» Π²ΠΎ внСшнюю ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Π½Π΅ примСняСтся.
  • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° оптимизация Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° bitmap-Ρ„Π°Π»ΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большими рСпозиториями — Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ индСксная Ρ‚Π°Π±Π»ΠΈΡ†Π° со списком Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ ΠΈΡ… смСщСний.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ «git merge-tree» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π° основС Π΄Π²ΡƒΡ… ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² вычисляСтся Π΄Π΅Ρ€Π΅Π²ΠΎ с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ слияния, Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ истории этих ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π±Ρ‹Π»ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° настройка «safe.barerepository» для управлСния Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ размСщСния bare-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² (Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π½Π΅ содСрТащиС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°) Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π². ΠŸΡ€ΠΈ установкС Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «explicit» Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Ρ€Π°Π±ΠΎΡ‚Π° с bare-рСпозиториями, Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. Для возмоТности размСщСния bare-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «all».
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «git grep» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «-m» («—max-count»), аналогичная ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ Π² GNU grep ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ число Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… совпадСний.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ «ls-files» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° опция «—format» для настройки Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΈ Ρ‚.ΠΏ.).
  • Π’ «git cat-file» ΠΏΡ€ΠΈ ΠΏΠΎΠΊΠ°Π·Π΅ содСрТимого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΡ‡Ρ‘Ρ‚Π° привязок Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² ΠΊ email, Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»Π΅ mailmap.

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