Site icon ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Четверг, 19 июня, 2025

Git 2.50: попрощайтесь с рекурсивным механизмом слияния

Git 2.50: попрощайтесь с рекурсивным механизмом слияния

Инструмент распределённого контроля версий Git 2.50 удаляет устаревший механизм рекурсивного слияния, завершая переход к более быстрому и надёжному механизму ORT.

Спустя почти три месяца после выхода предыдущей версии 2.49 Git, распределённая система контроля версий и ключевой инструмент в разработке программного обеспечения, который помогает разработчикам эффективно управлять изменениями в коде в рамках проектов, только что выпустила новую версию 2.50.

Заметным улучшением является работа с несколькими пакетами мусора. Пакеты мусора, впервые появившиеся в Git 2.37, хранят недоступные объекты в репозиториях. В Git 2.43 появились возможности для управления этими пакетами, но проблемы с удобством использования сохранялись, в частности из-за запутанного поведения командной строки и неожиданных ограничений.

В Git 2.50 эти проблемы решаются с помощью новой удобной опции под названием --combine-cruft-below-size. Этот инструмент позволяет пользователям эффективно объединять небольшие пакеты, значительно улучшая гигиену репозитория с течением времени.

Ещё одним важным достижением стало появление инкрементных многопакетных битовых карт достижимости. После инкрементных улучшений многопакетного индекса в Git 2.47, Git 2.50 ещё больше повышает производительность в больших репозиториях, позволяя выполнять инкрементные обновления битовых карт достижимости.

Однако, пожалуй, самым интересным обновлением в этом выпуске является полный переход от старого механизма слияния Git, «рекурсивного», к более быстрому и удобному в обслуживании механизму «ORT» (Ostensibly Recursive’s Twin).

ORT, представленный в Git 2.33 и ставший стандартным в 2.34, теперь полностью заменил устаревший рекурсивный механизм. Это изменение повышает производительность и добавляет новые функции, такие как возможность проверки возможности слияния без сохранения новых объектов слияния.

Разработчики, которые используют скрипты для работы с объектами репозитория, оценят улучшения в git cat-file. В Git 2.50 появилась упрощенная фильтрация объектов непосредственно в git cat-file, что упрощает выполнение таких распространенных задач, как извлечение определенных типов объектов. Кроме того, редко используемая опция --allow-unknown-type была удалена, что упростило функциональность инструмента и устранило устаревшие недостатки.

Кроме того, задачи по обслуживанию становятся более понятными благодаря обновлениям в git maintenance. Добавлены новые задачи, в том числе worktree-prunererere-gc, и reflog-expire, которые параллельно выполняют существующие операции по сборке мусора и упрощают регулярную очистку репозитория. Пользователи также могут настраивать размер пакета для свободной упаковки объектов, что обеспечивает более полный контроль над поведением при обслуживании.

Новые конфигурации для поддержки активности TCP повышают производительность сети и обеспечивают более точный контроль над HTTP-соединениями. Кроме того, была существенно сокращена зависимость от Perl, который был полностью исключен из набора тестов и документации Git, что повысило переносимость и сократило внешние зависимости.

Наконец, усовершенствования пользовательского интерфейса включают в себя более понятные комментарии во время интерактивных ребазингов и повышение эффективности при редких проверках при использовании git add -p или git add -i.

Для получения дополнительной информации см. объявление.

Exit mobile version