25.09.2020

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


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

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

  • Отменено реализованное в прошлом выпуске включение по умолчанию второй версии коммуникационного протокола Git, который используется при удалённом подключении клиента к Git-серверу. Протокол признан пока не готовым к использованию по умолчанию из-за выявления скользких моментов, требующих отдельного рассмотрения.
  • Добавлен набор опций для настройки SSL-соединения при обращении через прокси.
  • Расширена информация, выдаваемая при использовании преобразующих фильтров «clean» и «smudge». Например, теперь показывается объект tree-ish, в котором появляется преобразуемый блоб.
  • Для избежания путаницы в команде «git describe» теперь всегда применяется расширенный режим вывода («—long»), если выявлен связанный с коммитом заменённый тег (раньше, подписанный или аннотированный тег, описывающий коммит, выводился даже если он был переименован или перемещён в иерархии «refs/tags/», и команда «git show тег^0» не работала как ожидалось — «refs/tags/тег» не находился или даже выдавался уже другой тег).
  • При выполнении «git pull» теперь выдаётся предупреждение, если явно не задана конфигурационная переменная pull.rebase и не применены опции «—[no-]rebase» или «—ff-only». Для подавления предупреждения теми, кто не собирается выполнять операцию rebase, можно установить переменной значение «false».
  • Проведена ревизия опций «git pull», общих с «git fetch». Документированы ранее не упомянутые подобные опции и обеспечена передача в «git fetch» пропущенных опций.
  • В команду «git rebase» добавлена опция «—no-gpg-sign» для переопределения настройки «commit.gpgSign».
  • В «git format-patch» добавлена возможность отображения заголовков «From:» и «Subject:» в неизменном виде, без преобразования символов, отсутствующих в кодировке ASCII.
  • В «git log» добавлена опция «—show-pulls», позволяющая просмотреть не только коммиты в которых было выполнено изменения, но и коммит для слияния этих изменений из отдельной ветки.
  • Унифицирована обработка интерактивного ввода во всех компонентах и добавлен вызов fflush() после показа приглашения ввода, но перед операцией чтения.
  • В «git rebase» разрешено без предварительного выполнения операции «checkout» повторно применить все локальные коммиты, даже если некоторые из них ранее были переданы в upstream.
  • Значение конфигурационной переменной ‘pack.useSparse’ заменено на ‘true’ для включения по умолчанию оптимизаций, ранее преподносимых как экспериментальные.
  • В «git merge» добавлена опция «—autostash».
  • Улучшен интерфейс «sparse-checkout».
  • В «git update-ref —stdin» добавлено несколько новых действий, позволяющих напрямую контролировать транзакции обновления ссылок, например, для реализации двухэтапного атомарного обновления ссылок в нескольких репозиториях.
  • Добавлены шаблоны userdiff для документов Markdown.
  • Убрано ограничение на исключение всех путей в шаблонах sparse-checkout, приводящих к пустому рабочему дереву.
  • Операция «git restore —staged —worktree» теперь по умолчанию использует содержимое из ветки «HEAD», вместо вывода ошибки.
  • Продолжена работа по переходу на алгоритм хеширования SHA-2 вместо SHA-1.
  • Переработан код для взаимодействия с GnuPG.

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

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