Доступен (https://lkml.org/lkml/2014/8/15/498) релиз распределенной системы управления исходными текстами Git 2.1.0 (http://git-scm.com/). Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям задним числом используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов. Из проектов, разрабатываемых с использованием Git, можно отметить ядро Linux (https://git.kernel.org/cgit/linux/kernel/git/stable/linux-st.../), Android (https://android.googlesource.com/), Libreoffice (http://cgit.freedesktop.org/libreoffice), Systemd (http://cgit.freedesktop.org/systemd), X.Org (http://cgit.freedesktop.org/xorg), Wayland (http://cgit.freedesktop.org/wayland), Mesa (http://cgit.freedesktop.org/mesa/), Gstreamer (http://cgit.freedesktop.org/gstreamer), Wine (http://source.winehq.org/git/wine.git), Debian (http://anonscm.debian.org/gitweb), DragonFly BSD (http://gitweb.dragonflybsd.org/?p=dragonfly.git;a=summary), Perl (http://perl5.git.perl.org/perl.git), Eclipse (http://git.eclipse.org), GNOME (http://git.gnome.org/browse/), KDE (https://projects.kde.org/projects), Qt (http://qt.gitorious.org/), Ruby on Rails (https://github.com/rails/rails), PostgreSQL (http://git.postgresql.org/gitweb/), VideoLAN (http://git.videolan.org), PHP (http://git.php.net/), Xen (http://xenbits.xen.org/gitweb/), Minix (http://git.minix3.org/).Основные изменения:
- Изменение нарушающее совместимость: значение по умолчанию для переменной окружения 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 при сравнении трёх и более деревьев.
URL: https://lkml.org/lkml/2014/8/15/498
Новость: http://www.opennet.ru/opennews/art.shtml?num=40392