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

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

Основные изменения:

  • В команду diff добавлена опция »--find-object=object-id» для оценки изменений, связанных только с заданным именованным объектом;
  • В «git format-patch» при передаче данных в diffstat обеспечено форматирование патча с ограничением ширины в 72 символа, что соответствует ограничениям, применяемым в других субкомандах;
  • В «git daemon» добавлена возможность вывода лога в stderr вместо syslog в случае запуска из inetd;
  • В «git rebase» добавлена опция »--allow-empty-message»;
  • В «git am» добавлена опция »--quit» в дополнение к уже существующей опции »--abort» для синхронизации с опциями других команд, таких как «rebase» и «cherry-pick»;
  • В «git worktree add» добавлена возможность вызова обработчика после выполнения checkout, по аналогии с вызовом обработчика перед checkout в «git clone»;
  • В «git tag» добавлена опция »--edit» для редактирования сообщения, переданного через флаги »-m» и »-F»;
  • Добавлена команда «git fetch --prune-tags», которую можно использовать для чистки устаревших локально сохранённых тегов;
  • Добавлена опция »--show-current-patch», позволяющая посмотреть патч на котором остановился «git rebase» при возникновении конфликта;
  • В «git merge» применение »--no-ff» (создаётся коммит для слияния вместо быстрого перенаправления (fast-forwarding), даже если присоединенная ветвь является потомком текущего коммита) по умолчанию теперь ограничено слиянием тегов, находящихся не в типовых местах иерархии refs/tags/. Старое поведение было приемлемо для интеграторов, которые принимают подписанные теги от разработчиков downstream-проекта, но не было удобно для разработчиков downstream-проектов, которые «догоняли» upstream до очередного тега с релизом;
  • В «git status» добавлена опция »--no-ahead-behind» для отключения ресурсоёмких операций вычисления связи между текущей веткой и её upstream;
  • В «git send-email» добавлена опция »--reply-to=address»;
  • В «git config» по аналогии с «git tag» страничная прокрутка теперь не применяется в операциях, не связанных с отображением данных (например, при установке параметров).

© OpenNet