Представлен (https://lkml.org/lkml/2015/9/28/777) релиз распределенной системы управления исходными текстами Git 2.6.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 (https://code.qt.io/cgit/), 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/).
По сравнению с прошлым выпуском в новую версию принято 479 изменений, подготовленные при участии 67 разработчиков, из которых 15 впервые приняли своё участие в разработке. Основные изменения:
- Реализации "git pull" и "git am" переписаны на языке Си;
- Выполнена подготовка к реализации поддержки подключения различных бэкендов с реализации ссылочных хранилищ, предлагающих альтернативный способ хранения, не ограниченный традиционным подходом "один ref на один файл или упаковкой в файл packed-refs". Проведена чистка refs API;
- Добавлена возможность сброса входящих пакетов в файл для последующей отладки;
- Внесена порция улучшений, связанных с возможностями "git am" по чтению патчей от других систем контроля версий;
- Возможность использования символа звёздочки для определения маски файлового пути в обоих частях refspec (например, "refs/heads/o*:refs/remotes/heads/i*");
- В userdiff добавлено определение шаблона для формата разметки Fountain (http://fountain.io/);
- В "git log" и похожие команды добавлена опция "--date=format:..." для форматирования времени при помощи вызова strftime;
- В "git rebase -i" добавлена команда "drop commit-object-name subject", как альтернативный способ избежать повторного коммита;
- Добавлена новая конфигурационная переменная для автоматического использования опции "--follow" при запуске "git log" с одним аргументом спецификации файлового пути;
- В "git status" обеспечен вывод детальной информации о выполняемом в текущий момент сеансе "rebase -i";
- В "git cat-file" добавлена опция "--batch-all-objects" для перебора всех доступных в репозитории объектов. Новый режим работает быстрее, чем выполнение "rev-list --all --objects" и не включает в вывод недоступные объекты;
- Команда "git fsck" теперь игнорирует ошибки, связанные с объектами, помеченными как повреждённые, и допускает тонкую настройку уровня предупреждений для различных видов некритичных проблем;
- Возможность настройки списка задач (todo) для "git rebase -i";
- Введена переменная окружения GIT_REPLACE_REF_BASE, через которую можно указать альтернативный путь к иерархии ссылок с данными замены объектов, вместо использования штатного пути "refs/replace/";
- Обновлены размещённые в директории contrib скрипты автодополнения ввода командной строки;
- В команду "git send-email" добавлена опция "--smtp-auth" для задания списка допустимых механизмов аутентификации SMTP ("SMTP AUTH");
- Добавлена новая переменная конфигурации http.sslVersion, позволяющая ограничить версии SSL/TLS, которые допустимо использовать при установке соединения;
- Добавлена переменная конфигурации notes.mergeStrategy, которая аналогична опции "--strategy=how", задающей метод автоматической обработки конфликтов в "git notes merge";
- Для "git config --list" представлена опция "--name-only", при указании которой вывод формируется в виде, удобном для автоматического разбора скриптами (значения не разбиваются на отдельные строки);
- Проведена работа по увеличению удобства работы в интерфейсе gitk.
URL: https://lkml.org/lkml/2015/9/28/777
Новость: https://www.opennet.ru/opennews/art.shtml?num=43057