Представен е релиз на разпределената система за управление с оригинални текстове Git 2.53. Git се отличава с висока производителност и предоставя средства за нелинейно разработване, основани на клонови и сливания на клонове. За осигуряване на целостта на историята и устойчивостта на промени „задна дата“ се използват неявно хеширане на цялата предходна история в всяко комитиране, както и удостоверяване с цифрови подписи на разработчиците на отделни тагове и комити. Кодът на Git се разпространява под лицензия GPLv2+.
В сравнение с предишното издание новата версия включва 466 промени, подготвени с участието на 70 разработчици (21 от които участват за първи път в разработката на Git). Основни нововъведения:
- Добавена е възможността за прилагане на стратегията за опаковане на репозитории „геометрична“ („git repack —geometric“) към частично клонирани външни репозитории, работещи в режим „promisor“ (липсващите обекти се зареждат при необходимост). При повторно опаковане с опции „—geometric“ pack-файловете с разширение „.promisor“ се обработват и опаковат отделно. Стратегията „геометрична“ позволява да се намали времето за обслужване на големи монорепозитории, чрез селективно повторно опаковане на обекти и изключване на излишни ресурсоемки операции, като сливания на всички pack-файлове (запазва се геометричната прогресия на размера на pack-файловете, при която всеки следващ pack-файл трябва да бъде най-малко два пъти по-голям от предишния).
- В екипа на „git fast-import“ е добавена опцията „—signed-commits=strip-if-invalid“ за премахване на цифровите подписи от импортируемите обекти, станали недействителни след презаписване на част от историята на репозитория. Поради това беше възможно или да се импортират, или да се премахнат всички подписи, без разделяне на действителни и загубили значение. Опцията „strip-if-invalid“ позволява реализирането на инструменти за запазване на действителни подписи и переподписване на обекти с загубили актуалност подписи.
- Командата «git repo structure» добави информация за размера на всички достъпни обекти (reachable) в репозитория, разделена по типове. Информацията вече се извежда в четим формат с единици за измерване и се показва отделно за действителния и заетото дисково пространство, което позволява оценка на общия размер на репозитория на диска. $ git repo structure | Структура на репозитория | Стойност | | ——————— | ———- | | * Референции | | | * Брой | 1.78 k | | * Клонове | 5 | | * Тагове | 1.03 k | | * Ремоти | 749 | | * Други | 0 | | | | | * Достъпни обекти | | | * Брой | 421.37 k | | * Комити | 88.03 k | | * Дървета | 169.95 k | | * Блобове | 162.40 k | | * Тагове | 994 | | * Разширен размер | 7.61 GiB | | * Комити | 60.95 MiB | | * Дървета | 2.44 GiB | | * Блобове | 5.11 GiB | | * Тагове | 731.73 KiB | | * Дисков размер | 301.50 MiB | | * Комити | 33.57 MiB | | * Дървета | 77.92 MiB | | * Блобове | 189.44 MiB | | * Тагове | 578.13 KiB |
- В командата «git maintenance» е добавена подкоманда «is-needed», за да се извършват операции по поддръжка на репозитория само при необходимост.
- В експерименталната команда «git replay» по подразбиране е реализирано обновление на референциите в транзакцията, вместо да се показва къде трябва да сочат референциите, без обновление.
- В командата «git blame» е добавена възможност за избор на алгоритъм за оценка на разликите с опцията «—diff-algorithm=».
- В командата «git repo info» е добавена опция «—all».
- Поддръжка на символични връзки за Windows е пренесена от Git-for-Windows.
В предишното издание е добавено предупреждение за включване по подразбиране на сглобяване на компоненти на Rust в Git 2.53. Въпреки това, в версията Git 2.53 са добавени само отделни подобрения в поддръжката на Rust (възможност за сглобяване без GNU sed), но сглобяването с Rust при използване на Makefile е оставено по подразбиране деактивирано (изисква флага WITH_RUST), а при използване на Meson автоматично се активира при наличието на компилатор rustc. В Git 3.0 инструментариумът Rust се планира да бъде включен в задължителните зависимости за сглобяване.
Източник: opennet.ru
