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

Доступен релиз распределенной системы управления исходными текстами Git 2.1.0. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям задним числом используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов. Из проектов, разрабатываемых с использованием Git, можно отметить ядро Linux, Android, Libreoffice, Systemd, X.Org, Wayland, Mesa, Gstreamer, Wine, Debian, DragonFly BSD, Perl, Eclipse, GNOME, KDE, Qt, Ruby on Rails, PostgreSQL, VideoLAN, PHP, Xen, Minix. Основные изменения:

Изменение нарушающее совместимость: значение по умолчанию для переменной окружения LESS изменено с «FRSX» на «FRX». В частности, убран флаг «S», который указывал на необходимость отрезания хвоста невлезающих длинных строк. Отныне длинные строки будут переноситься на следующую строку. Для возврата старого поведения можно запустить 'git config core.pager «less -S»' или только для команды «git blame» — 'git config pager.blame «less -S»'; Добавлена команда «git verify-commit» для проверки цифровой подписи GPG в подписанных коммитах по аналогии с использованием «git verify-tag» для подписанных тегов; Добавлена экспериментальная поддержка нового формата индексов, в котором используется два файла — один с базовыми данными, а другой с инкрементальными изменениями относительно базового файла. Использование данного формата может сократить операции ввода/вывода при перезаписи очень больших индексов на системах с небольшой активностью изменений в рабочем дереве; Активирована по умолчанию настройка «core.preloadindex», включающая поддержку предварительной загрузки индекса, что позволяет ускорить работу на системах с многоядерными CPU; При клонировании репозитория с локального диска при помощи команды «git clone» теперь используется копирование с применением жестких ссылок. Для отмены данного поведения следует использовать опцию »--no-local»; В команду git commit --date={date}» добавлена поддержка дополнительных форматов задания времени, в том числе »--date=now»; Из contrib/ исключено несколько вышедших из употребления директорий; Код для вычисления ширины экрана при выводе строк UTF-8 обновлён для соответствия спецификации Unicode 7.0; Для клиентов, использующих транспорт на основе HTTP, обеспечена более полная трансляция сообщений об ошибках, передаваемых web-сервером; В скрипте автодополнения ввода для bash (из contrib/) улучшена поддержка алиасов, определяющих сложные последовательности команд; Добавлена настройка «core.commentChar», через которую для редактора сообщений коммитов можно задать символ начала комментария, отличный от »#». Для автоматического определения символа комментария можно указать параметр «auto»; В команду «git format-patch» добавлена опция »--signature-file=файл» для добавления подписи к письму из указанного файла; В «git grep» добавлена настройка grep.fullname, принудительно включающая использование полного имени файла (»--full-name») В «git imap-send» добавлена возможность обращения к обработчику запроса параметров входа для получения данных аутентификации; В «git log» и похожих командах обеспечена поддержка значения «auto» для автоматического включения опции »--decorate» при выводе на терминал; Запуск «git merge» без аргументов теперь приведёт к выводу ошибки, за исключением явного определения upstream для текущей ветки или активации опции merge.defaultToUpstream; В «git mergetool» добавлена поддержка бэкенда vimdiff3; По умолчанию отключена настройка mergetool.prompt, при которой всегда выводился запрос подтверждения о запуске утилиты tergetool в текущем пути; В «git replace» добавлена субкоманда »--edit» для создания замены через редактирование существующего объекта; В «git replace» добавлена субкоманда »--graft» для перезаписи родителя текущего коммита; В «git send-email» добавлены опции »--to-cover» и »--cc-cover» для получения содержимого заголовков «To»: и «Cc:» из указанных далее файлов; При редактировании сообщения для тега через «git tag» обеспечено отображение тега в комментарии; Лимит «core.deltabasecachelimit» увеличен с 16 до 96 MiB; Проведена значительная оптимизация работы команды «git blame» за счёт реорганизации структур по отслеживанию выполнения работы; Оптимизирована работа «git diff при сравнении трёх и более деревьев.

© OpenNet