Новости и события » Hi-Tech » Выпуск распределенной системы управления исходными текстами Git 2.21

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

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

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

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

  • В "git log" и другие команды добавлена опция "--date=human", позволяющая выводить даты в сокращенном читаемом виде, адаптивно выбирая формат, в зависимости от давности события. Например, вместо "Mon Feb 25 08:20:14 2019 -0500" для только, что совершенных действий будет указано "N минут назад" (как в режиме "--date=relative"), для недавних событий будет показан день и час, а для старых изменений только день, месяц и год:

    Дополнительно предусмотрена опция "--date=auto:human", которая применяет новое форматирование только при выводе через терминал, а при перенаправлении вывода в файл или в другую команду использует формат по умолчанию:
  • В "git fetch-pack" и "git fetch --deepen=..." добавлена поддержка второй версии протокола Git. Команды "git fetch" и "git upload-pack" адаптированы для отправки данных через дополнительные каналы доставки при использовании второй версии протокола Git;
  • Добавлена опциональная возможность применения алгоритма хэширования SHA-256 вместо скомпрометированного SHA-1 при сборке Git в режиме "NewHash". Код для обхода дерева объектов изменен с учетом того, что имена объектов могут вычисляться не только с использоваинем SHA-1;
  • В команде "git cherry-pick" обеспечена возможность использования опции "-m" (mainline) при указании "git cherry-pick -m1", т. е. позволяет повторно применить коммит при выборе первого родителя этого коммита в качестве mainline-ветки. В остальных случаях как и раньше будет выводиться ошибка;
  • Команда "git log -G", осуществляющая поиск по регулярному выражению, с целью оптимизации производительности теперь не выполняет поиск в бинарных файлах, если дополнительно явно не указана опция "--text" или не применен textconv;
  • Добавлена настройка "http.version", позволяющая определить предпочитаемую версию протокола HTTP, применяемую при извлечении или отправке изменений. Для работы опции требуется относительно свежая библиотека cURL;
  • "git push $there $src:$dst" выдает ошибку, если в $dst указан относительный путь и точно не ясно, что пользователь имел в виду. В новой версии текст ошибки стал более понятным и добавлена подсказка с попыткой угадать место назначения с учетом типа объекта;
  • В команде "git checkout [tree-ish] path..." обеспечен вывод числа путей, которые будут извлечены их индекса или tree-ish;
  • В команду "git quiltimport" добавлена опция "--keep-non-patch";
  • Команды "git worktree remove" и "git worktree move" теперь можно применять при наличии в рабочем дереве неинициализированных субмодулей (ранее данные операции невозможно было использовать при наличии любого субмодуля);
  • Обновлены реализации команд "git multimail" и "git p4";
  • При указании опции "--format=" для веток, тегов и при переборе ссылок расширен спектр свойств объектов, извлекаемых через API object_info;
  • В команде "git rebase -i" обеспечен повторный запуск команды, указанной при помощи настройки 'exec', в случае если прошлая попытка не увенчалась успехом;
  • Обновлена реализация команды "git diff --color-moved-ws";
  • В "log --format" добавлена поддержка флага "%S" для отображения подсказки об источнике поступления коммита;
  • В скрипт "git instaweb", используемый для запуска интерфейса gitweb для доступа через Web к локальному репозиторию, кроме работы под управлением внешнего http-сервера, добавлена поддержка применения предоставляемых в Python модулей для встраивания функциональности http-сервера (http.server=python);
  • Проведена оптимизация и чистка кода, связанного с проверкой несвязанных объектов. Обновлена реализация кэша для ускорения поиска несвязанных объектов;
  • Запрещено использование в коде функции "strncat";
  • Реализация "git rebase --merge" переписана для использования общего кода, применяемого в "git rebase -i";
  • Код "git bisect" переписан на языке Си.

Мощный электрокроссовер Kia для всей семьи

Мощный электрокроссовер Kia для всей семьи

Электромобиль Kia EV9 GT оснащен 501-сильной установкой и способен разогнаться до 100 км/ч за 4,3 с. Кроссовер получил адаптивные амортизаторы и улучшенные тормоза. Линейку Kia EV9 2025 пополнила спортивная модификация GT. Мощный семейный электрокроссовер...

сегодня 09:52

Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх