Git 2.32 (source code)

Теги

Git (source code) является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток.

Git (source code) поддерживает быстрое разделение и слияние версий, включает инструменты для визуализации и навигации по нелинейной истории разработки. Как и Darcs, BitKeeper, Mercurial, Bazaar и Monotone, Git предоставляет каждому разработчику локальную копию всей истории разработки, изменения копируются из одного репозитория в другой.  Удалённый доступ к репозиториям Git обеспечивается git-демоном, SSH- или HTTP-сервером.

TCP-сервис git-daemon входит в дистрибутив Git и является наряду с SSH наиболее распространённым и надёжным методом доступа. Метод доступа по HTTP, несмотря на ряд ограничений, очень популярен в контролируемых сетях, потому что позволяет использовать существующие конфигурации сетевых фильтров. По сравнению с прошлым выпуском в новую версию принято 617 изменений, подготовленных при участии 100 разработчиков, из которых 35 впервые приняли участие в разработке.

Изменения в новой версии программы:

  • В команду "git commit" добавлена опция "--trailer <key>[=<value>]", которая позволяет упростить прикрепление к коммиту собственной структурированной информации (trailer) в формате ключ/значение, которую можно затем обработать командой "interpret-trailers".
  • Вместо механизма GIT_CONFIG_NOSYSTEM, применяемого для предотвращения чтения из общего для всей системы файла конфигурации, предложено использовать механизм GIT_CONFIG_SYSTEM, позволяющий явно указать из какого файла следует загружать общесистемные настройки, а также параметр GIT_CONFIG_GLOBAL для переопределение привязанных к отдельным пользователям настроек в $HOME/.gitconfig. Присвоение переменной GIT_CONFIG_SYSTEM пустого значение меняет поведение на эквивалентное GIT_CONFIG_NOSYSTEM.
  • При использовании второй версии коммуникационного протокола Git при выполнении "git push" реализовано определение общего предка на принимающей стороне, что позволило довести эффективность работы "git push" до уровня "git fetch" и исключить загрузку объектов, в которых нет необходимости.
  • Добавлен простой IPC-интерфейс, позволяющий создавать сервисы, такие как fsmonitor.
  • Прекращена обработка файлов ".gitattributes", ".gitignore" и ".mailmap", если они являются символическими ссылками.
  • Для транспорта HTTP добавлена поддержка кэширования пароля, успешно использованного для разблокировки сертификата.
  • В команде "git stash show" реализована возможность отображения неотслеживаемой части хранилища временно убранных файлов.
  • Предложена более продвинутая стратегия переупаковки репозитория командой "git repack", позволяющая снизить потребление ресурсов при переупаковке.
  • В команде "git commit" реализован расширенный вариант опции "--fixup" (создание коммита для "rebase --autosquash") - "--fixup=(reword|amend):", предоставляющий выбор: изменять только сообщение в логе или сообщение и содержимое.
  • В команде "git send-email" учтена установка настройки core.hooksPath.
  • В "git format-patch -v<n>" разрешено использование счётчиков, не являющихся целым числом.
  • В "git clone" добавлена опция "--reject-shallow", позволяющая запретить клонирование из репозиториев в режиме shallow (без полной истории изменений).
  • В программе "gitweb" добавлен режим скрытия email, заменяющий похожие на email строки при выводе.
  • Изменена логика обработки команды "git apply --3way", которая теперь вначале пытается применить алгоритм трёхстороннего слияния и только в случае сбоя или возникновении конфликта откатывается на обычное применение патча (раньше было наоборот).
  • В команде "git apply" разрешено одновременное указание опций "--3way" и "--cached".
  • В Userdiff добавлены шаблоны для языка "Scheme".
  • В команду "git log" добавлена опция "--diff-merges=<style>" и настройка log.diffMerges для выбора режима по умолчанию.
  • В команды "git add" и "git rm" добавлена дополнительная защита от изменения данных в путях, находящихся вне области операции частичного клонирования (sparse checkout).
  • В команду "git rev-list" добавлена опция "--filter=object:type=<type>" для исключения определённого типа объектов из pack-файла, генерируемого командой pack-objects.
  • В "git pack-objects" запрещено указание отрицательных значений в опциях, принимающих числовые значения, таких как "--window" и "--depth".

Программа является свободной и выпущена под лицензией GNU GPL версии 2. 

 

Последние материалы