Git Logo

Представлен релиз распределенной системы управления исходными текстами Git 2.3.0. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям задним числом используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов. Из проектов, разрабатываемых с использованием Git, можно отметить ядро LinuxAndroidLibreOfficeSystemdX.OrgWaylandMesaGstreamerWineDebianDragonFly BSDPerlEclipse,GNOMEKDEQtRuby on RailsPostgreSQLVideoLANPHPXenMinix.

 

По сравнению с прошлым выпуском в новую версию принято 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.