Представлен релиз распределенной системы управления исходными текстами Git 2.3.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.
По сравнению с прошлым выпуском в новую версию принято 255 изменений, подготовленных при участии 61 разработчика, из которых 19 впервые приняли своё участие в разработке. В новом выпуске представлены в основном исправления ошибок и мелкие улучшения, значительные изменения отсутствуют. Основные изменения:
- Внесены исправления, позволяющие собрать git на платформах без поддержки tv_nsec, clock_gettime, CLOCK_MONOTONIC и HMAC_CTX_cleanup, например, в старых выпусках RHEL;
- Для упрощения передачи дополнительных аргументов в ssh добавлена переменная окружения GIT_SSH_COMMAND;
- Незаполненное примечание при выполнении команды "git notes" теперь приводит к удалению примечания из объекта. Для добавления пустого примечания следует использовать опцию "--allow-empty";
- В "git interpret-trailers" добавлена возможность обработки блоков "Conflicts:" в конце текста;
- В "git am" появилась опция "--message-id" для копирования в лог коммита идентификатора сообщения, полученного по электронной почте;
- В "git clone --reference=..." добавлена опция "--dissociate" для получения объектов для клонирования из эталонного хранилища объектов с созданием локальной копии извлечённых объектов для результирующего клона;
- В "git send-email" добавлена опция "--transfer-encoding" для принудительного указания значения заголовка Content-Transfer-Encoding (например, base64);
- Сообщения, отправленные через "git send-email", теперь идентифицируются при помощи заголовка X-Mailer. Для отмены установки заголовка следует использовать опцию "--no-xmailer";
- В contrib добавлена команда "git new-workdir", которую можно использовать для заполнения пустого или существующего каталога;
- В интерфейс обработчиков учётных данных добавлена возможность досрочного завершения проверки, без вызова других обработчиков в цепочке. Также стало возможно отключить встроенное приглашение ввода пароля посредством установки переменной окружения GIT_TERMINAL_PROMPT=false;
- В "git branch -d" (удалить) и "git branch -m" (переместить) добавлена опция "-f" для принудительного выполнения операции (в дополнение к -D/-M);
- В contrib добавлен фильтр "diff-highlight", позволяющий настроить на свой вкус подсветку вывода;
- В "git imap-send" добавлены опции "-v" (verbose) и "-q" (quiet);
- Стало возможным указание команды "git remote add $name $URL", если $URL определён через "url.$URL.insteadOf";
- Реализация команды "git imap-send" теперь может быть собрана с библиотекой cURL для соединения с IMAP при помощи методов аутентификации, отличных от CRAM-MD5.