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

Материал из Викиновостей, свободного источника новостей

19 января 2018 года

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

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

  • Использование пустой строки в качестве охватывающей все варианты маски пути теперь считается ошибкой. Например, команда git add больше не будет работать. Указанная возможность была объявлена устаревшей ещё в 2016 году;
  • Скрипты с реализацией хуков отныне будут игнорироваться если для них не выставлен флаг исполняемого файла. По умолчанию при подобном игнорировании будет выводиться предупреждение, которое можно отключить через опцию advice.ignoredHook;
  • В "git pull" добавлена обработка опции "--[no-]signoff" и её передача в "git merge";
  • Значение опции "--push-option=строка" к "git push" теперь по умолчанию устанавливается в список строк, установленный через переменную push.pushOption;
  • В "gitweb" для проверки доступа к директории вместо Perl-оператора "-x" применена pragma "filetest 'access'";
  • Команда "git stash save" объявлена устаревшей, вместо неё следует использовать "git stash push";
  • Обработчик для взаимодействия с MediaWiki переработан для работы с пространствами имён mediawiki и корректной обработки слишком длинных имён страниц (теперь имена обрезаются без потери суффикса ".mw");
  • В команде "git for-each-ref" опция "--format=..." расширена возможностью отображения имени внешнего репозитория и его использования на удалённой стороне в 'upstream' и 'push' через параметр "%(push:remotename)";
  • Выполнение "git bisect run" без явного указания каких-либо команд теперь приводит к выводу ошибки, вместо обработки всех коммитов как успешно протестированных;
  • Представлено новое расширение fsmonitor для взаимодействия со средствами мониторинга состояния ФС, позволяющее ускорить выполнение "git status" и других операций, которым необходимо отслеживать какие из файлов были изменены;
  • В командах семейства "diff" обеспечено игнорирование различий в указании возврата каретки в конце строки;
  • Команда "git add --renormalize ." теперь позиционируется как новый и надёжный способ записи сведений о нормализации символов конца строки и других замен в данных репозитория при помощи функции "convert_to_git()";
  • В командах "git branch" и "git checkout -b" теперь блокируют попытки создания ветки с именем "HEAD";
  • В команде "git branch --list" по умолчанию реализован вывод с использованием постраничного просмотра (pager), когда содержимое не вмещается в терминал. По аналогии с "git tag --list" данное поведение можно контролировать при помощи настройки pager.branch;
  • В команды, подобные "git grep -W" и "git diff -W", добавлена эвристика для раскрытия строк, похожих на функцию (например, "diff.*.xfuncname") для включения в вывод блоков комментариев, идущих непосредственно перед вводимым элементом;
  • В "git config --expiry-date gc.reflogexpire" обеспечена обработка параметров времени в виде "2.weeks" по аналогии с обработкой

"1k" в "--int" как 1024;

  • Имена тегов в "git log --decorate", используемых для аннотирования коммитов, теперь могут быть ограничены подмножеством доступных ref-ссылок, выбранных при помощи опций "--decorate-refs=шаблон" и "--decorate-refs-exclude=шаблон";
  • Устранена проблема, приводившая к крахам при выполнении "git grep", если осуществлена сборка с libpcre2;
  • В "git send-email" добавлена проверка наличия sendmail не только в /usr/lib и /usr/sbin, но и в других путях из списка $PATH;
  • В команду "git diff" добавлена опция "--anchored" с реализацией варианта алгоритма "--patience", позволяющего задать уникальную строку в качестве опорной точки;
  • Добавлена настройка rebase.abbreviateCommands, при которой

"git rebase -i" генерирует список todo с указанием односимвольных аббревиатур имён команд;

  • В команде "git svn" обеспечена очистка символов возврата каретки в сообщениях коммитов по аналогии с поведением Subversion;
  • Добавлена поддержка URL https:// для http.proxy при использовании свежих версий libcurl;
  • Команда "git merge" теперь проверяет наличие настройки merge.verifySignatures и использует её значение, как если бы в командной строке была указана опция '--verify-signatures'.
  • Реализации "git bisect" и "git submodule" переписаны на Си;
  • Проведена оптимизация кода для поиска кратчайшего уникального префикса имён объектов.

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


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

Комментарии[править]

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