Выпуск системы управления исходными текстами Git 2.32
7 июня 2021 года
После трёх месяцев разработки опубликован выпуск распределенной системы управления исходными текстами Git 2.32. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям "задним числом" используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов.
По сравнению с прошлым выпуском в новую версию принято 617 изменений, подготовленных при участии 100 разработчиков, из которых 35 впервые приняли участие в разработке. Основные новшества:
- В команду "git commit" добавлена опция "--trailer <key>[=<value>]", которая позволяет упростить прикрепление к коммиту собственной структурированной информации (trailer) в формате ключ/значение, которую можно затем обработать командой "interpret-trailers".
- Вместо механизма GIT_CONFIG_NOSYSTEM, применяемого для предотвращения чтения из общего для всей системы файла конфигурации, предложено использовать механизм GIT_CONFIG_SYSTEM, позволяющий явно указать из какого файла следует загружать общесистемные настройки, а также параметр GIT_CONFIG_GLOBAL для переопределение привязанных к отдельным пользователям настроек в $HOME/.gitconfig. Присвоение переменной GIT_CONFIG_SYSTEM пустого значение меняет поведение на эквивалентное GIT_CONFIG_NOSYSTEM.
- При использовании второй версии коммуникационного протокола Git при выполнении "git push" реализовано определение общего предка на принимающей стороне, что позволило довести эффективность работы "git push" до уровня "git fetch" и исключить загрузку объектов, в которых нет необходимости.
- Добавлен простой IPC-интерфейс, позволяющий создавать сервисы, такие как fsmonitor.
- Прекращена обработка файлов ".gitattributes", ".gitignore" и ".mailmap", в случае, если они являются символическими ссылками.
- Для транспорта HTTP добавлена поддержка кэширования пароля, успешно использованного для разблокировки сертификата.
- В команде "git stash show" реализована возможность отображения неотслеживаемой части хранилища временно убранных файлов.
- Предложена более продвинутая стратегия переупаковки репозитория командой "git repack", позволяющая снизить потребление ресурсов при переупаковке.
- В команде "git commit" реализован расширенный вариант опции "--fixup" -
"--fixup=(reword|amend):<commit>", предоставляющий выбор, изменять только сообщение в логе или сообщение и содержимое.
- В команде "git send-email" учтена установка настройки core.hooksPath.
- В "git format-patch -v<n>" разрешено использование счётчиков, не являющихся целым числом.
- В "git clone" добавлена опция "--reject-shallow", позволяющая запретить клонирование из репозиториев в режиме shallow (без полной истории изменений).
- В программе "gitweb" добавлен режим скрытия email, заменяющий похожие на email строки при выводе.
- Изменена логика обработки команды "git apply --3way", которая теперь вначале пытается применить алгоритм трёхстороннего слияния и только в случае сбоя или возникновении конфликта откатывается на обычное применение патча (раньше было наоборот).
- В команде "git apply" разрешено одновременное указание опций "--3way" и "--cached".
- В Userdiff добавлены шаблоны для языка "Scheme".
- В команду "git log" добавлена опция "--diff-merges=<style>" и настройка log.diffMerges для выбора режима по умолчанию.
- В команды "git add" и "git rm" добавлена дополнительная защита от изменения данных в путях, находящихся вне области операции частичного клонирования (sparse checkout).
- В команду "git rev-list" добавлена опция "--filter=object:type=<type>" для исключения определённого типа объектов из pack-файла, генерируемого командой pack-objects.
- В "git pack-objects" запрещено указание отрицательных значений в опциях, принимающих числовые значения, таких как "--window" и "--depth".
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.