Git 2.2.0

Новая версия включает в себя более 550 изменений от 77 разработчиков. 20 из них в первые принимают участие в разработке Git.

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

В «fast-export» добавлена опция »--anonymize», позволяющая при экспорте заменить содержимое произвольных блобов, имён разработчиков, путей и записей в логе на строки-заглушки. Подобное необходимо когда требуется сообщить об ошибке, но присутствуют ограничения по раскрытию некоторого содержимого в публичном репозиторий; В команду «git push» добавлена опция »--signed», позволяющая выполнить push-обновление на сервер, не заслуживающий доверия, с использованием цифровой подписи для последующего аудита и проверки привязки веток в публичном репозитории к необходимым коммитам; В «git archive» добавлена возможность фильтрации попадающего в архив содержимого по файловому пути (pathspec); В случае отсутствия привязанного к пользователю файла конфигурации (core.user) выполнение «git config --edit --global» отныне приведёт к выводу в редакторе базового шаблона конфигурации, а не пустого экрана; При выполнении команды «git stash list -p» теперь отображаются отличия основной версии коммита и версии из рабочего дерева по аналогии с «git stash show»; В «git difftool» добавлена опция для отключения передачи путей в diff-бэкенд, если он завершил своё выполнение с ненулевым кодом возврата; В «log --date=iso» использован компактный вариант формата ISO 8601, который более удобен для восприятия человеком. Для полного следования требованиям стандарта вывода даты добавлена опция »--date=iso-strict»; В логике работы «git prune» учтены различные пограничные ситуации; Добавлена защита от использования неоднозначных индексов, создаваемых некорректными реализациями Git, в которых для одного пути содержатся записи для нескольких стадий; Изменено наименование создаваемых при выполнении команды «git mergetool» временных файлов, для того чтобы избежать слишком большого числа точек в именах (вместо наименования «hello.BASE.4321.c» теперь используется «hello_BASE_4321.c»). Добавлена возможность размещения подобных временных файлов в отдельной директории, которую можно определить через директиву конфигурации «mergetool.writeToTemp»; Представлен новый спецификатор »%D», который, в отличие от »%d», выводит имя тега без оформления (при »%d» выводится » (tagname)», а при »%D» просто «tagname»); Добавлен новый фильтр «git interpret-trailers», позволяющий откорректировать хвост сообщения к коммиту (содержит «Signed-off-by:»); Добавлена команда «git help everyday», при выполнении которой выводится руководство «Everyday Git in 20 commands or so»; Сокращено потребление памяти и увеличена эффективность обработки параметров слияния при работы команды «git svn»; В «git fsck» добавлены дополнительные проверки целостности содержимого объектов, связанных с тегами; В «git hash-object» добавлена опция »--literally» для упрощения отладки; API для манипуляции ссылками («refs») реструктуризирован для придания более транзакционного характера и поддержки атомарных обновлений при размещении хранилищ не только в традиционных ФС (например, в СУБД); Проведена чистка API для работы с файлами блокировок; Добавлена подсистема для кэширования параметров конфигурации, позволяющий избавиться от многократного чтения файлов конфигурации при выполнении некоторых команд.  git

©  Linux.org.ru