2 февруари представен издаване на разпределена система за управление на изходните текстове Git 2.53.
Git предлага висока производителност и предоставя средства за нелинейна разработка, основаващи се на разклоняване и сливане на клонове. За да се гарантира целостта на историята и устойчивостта на промените "задним числом", се използва неявно хеширане на цялата предишна история в всеки комит, както и удостоверяване с цифрови подписи на разработчиците на отделни тагове и комити. Кодът на Git разпространява под лиценз GPLv2+.
В сравнение с предишното издание, в новата версия са приети 466 промени, подготвени с участието на 70 разработчици (21 от които за първи път участват в разработката на Git). Основните нововъведения:
- Добавена е възможности за прилагане на стратегия за опаковане на репозитории geometric (git repack —geometric) за частично клонирани външни репозитории, работещи в режим promisor (липсващите обекти се изтеглят при нужда). При повторно опаковане с опции —geometric pack-файловете с разширение .promisor се обработват и опаковат отделно. Стратегията geometric позволява да се съкрати времето за поддръжка на големи монорепозитории, чрез селективно повторно опаковане на обекти и изключване на излишни ресурсоемки операции, като сливане на всички pack-файлове (запазва се геометричната прогресия на размера на pack-файловете, при която всеки следващ pack-файл трябва да бъде поне два пъти по-голям от предишния).
- В екипа git fast-import е добавена опция —signed-commits=strip-if-invalid за премахване на цифрови подписи от импортируемите обекти, станали невалидни след презаписване на част от историята на репозитория. До сега можеше да се импортира или да се премахнат всички подписи, без разделение на валидни и загубили смисъла. Опцията strip-if-invalid позволява реализиране на инструменти за запазване на действителните подписи и подписване отново на обекти с загубили актуалност подписи.
- В изхода на командата git repo structure е добавена информация за размера на всички достижими обекти (reachable) в репозитория с разбивка по техните типове. Информацията сега се показва в четим формат с единици за измерване и се показва отделно за фактическите и заетите на диска размери, което позволява да се оцени общият размер на репозитория на диска:
$ git repo структура | Структура на репозитория | Стойност | | ——————— | ———- | | * Препратки | | | * Брой | 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.
- Поддръжката на символични линкове е пренесена от Git-for-Windows за платформата Windows.
В предишното издание беше добавено предупреждение включването по подразбиране на сглобяване на компоненти на езика Rust в Git 2.53. Въпреки това, в действителност в версия Git 2.53 само добавени отделни подобрения в поддръжката на Rust (възможност за сглобяване без GNU sed), но сглобяването с Rust при използване на Makefile остава по подразбиране деактивирано (изисква задаване на флага WITH_RUST), а при използване на Meson автоматично се активира при наличие на компилатор rustc. В версия Git 3.0 инструментарят Rust имат намерение да включат в списъка с задължителни зависимости за сглобяване.
Източник: linux.org.ru
