Выпуск распределенной системы управления исходными текстами 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.
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.