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

Kate

Administrator
Команда форума
После трёх месяцев разработки опубликован выпуск распределенной системы управления исходными текстами 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" (создание коммита для "rebase --autosquash") - "--fixup=(reword|amend):", предоставляющий выбор: изменять только сообщение в логе или сообщение и содержимое.
  • В команде "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".


Источник статьи: https://www.opennet.ru/opennews/art.shtml?num=55288
 
Сверху