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

2 июня 2020 года

Доступен выпуск распределенной системы управления исходными текстами 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.

Источники править

 
 
Creative Commons
Эта статья содержит материалы из статьи «Выпуск распределенной системы управления исходными текстами Git 2.27», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.