22.09.2023

Выпуск распределенной системы управления исходными текстами Git 2.30


Доступен выпуск распределенной системы управления исходными текстами Git 2.30.0. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям «задним числом» используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов.

По сравнению с прошлым выпуском в новую версию принято 495 изменений, подготовленных при участии 83 разработчиков, из которых 29 впервые приняли участие в разработке. Основные новшества:

  • Обновлены шаблоны userdiff для PHP, Rust и CSS. Добавлена поддержка определения функций в bash и POSIX shell.
  • В скрипт автодополнения опций командной строки добавлена возможность раскрытия команд, являющихся псевдонимами псевдонимов, а также реализована поддержка параметров «git stash show», аналогичных параметрам «git diff». Обновлены сценарии автодополнения для Zsh.
  • В «git worktree list» реализовано отображение признака блокировки рабочих деревьев.
  • Продолжено развитие команды «git maintenance», расширенного варианта «git gc».
  • В «git push» добавлена опция «—force-if-includes», нацеленная на решение проблемы с потерей коммитов при неправильном использовании команды «git push —force-with-lease[=‹ref›]». При указании «—force-if-includes» вместе c «—force-with-lease» выполняется дополнительная проверка актуальности заменяемых коммитов.
  • Для «git clone» добавлена настройка clone.defaultremotename, позволяющая определить имя, которое будет использовано для обращения к хосту с которого был клонирован репозиторий.
  • Для «git checkout» добавлена настройка checkout.guess, позволяющая настроить применение опции «—guess» по умолчанию.
  • Для команды «git diff A…B» предложен более информативный аналог «git diff —merge-base A B».
  • В команды семейства «git diff» добавлена опция «-I‹regex›» для игнорирования частей, изменения в которых соответствуют заданному шаблону.
  • В «git archive» при создании tar.gz разрешено указание уровней сжатия выше «-9».
  • Предоставлена возможность настройки размера имён файлов, создаваемых командой «git format-patch» (раньше действовало ограничение в 64 символа).
  • В команду «git rev-parse» добавлена опция «—end-of-options», помогающая в скриптах явно отделить параметр с ревизией, например «git rev-parse —verify -q —end-of-options $rev».
  • В «git update-ref —stdin» добавлена возможность обработки нескольких транзакций в одном сеансе.
  • В различные подкоманды «git config» добавлена опция «—literal-value», позволяющая передать значение value_regex не в форме регулярного выражения, а в виде строки для проверки точного совпадения.
  • В настройках параметр help.autocorrect теперь может принимать значение ‘never’ для полного отключения логики определения опечаток в названиях команд (по умолчанию, если указана несуществующая команда, git анализирует типовые опечатки и запускает откорректированную команду, если определён только один вариант замены).
  • Продолжено переписывание команды «git bisect» на языке Си.

Источник: https://www.opennet.ru/opennews/art.shtml?num=54330

Добавить комментарий