Новости и события » Hi-Tech » Выпуск распределенной системы управления исходными текстами Git 2.20

Выпуск распределенной системы управления исходными текстами Git 2.20

Подготовлен выпуск распределенной системы управления исходными текстами Git 2.20.0. Git является одной из самых популярных, надежных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям задним числом используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов. По сравнению с прошлым выпуском в новую версию принято 962 изменения, подготовленных при участии 83 разработчика, из которых 26 впервые приняли участие в разработке.

  • Добавлен код для обнаружения на стадии выполнения "git clone" ситуаций, когда в репозитории встречаются файлы, пути к которым отличаются только регистром символов (например, path/file.txt и /path/File.Txt). Так как не все файловые системы различают регистр символов при выявлении подобных пересечений теперь выводится предупреждение;
  • Добавлена оптимизация, сокращающая объем вычисления при оценке различий: исключен учет delta-изменений для объектов из одного ответвления с другими объектами, которые не появляются в том же ответвленном репозитории;
  • В команду "git format-patch" добавлены опции "--interdiff" и "--range-diff" для отображении в примечании списка различий между текущей и предыдущей версиями;
  • В команду "git mailinfo", которая также используется в "git am", добавлена возможность восстановления патчей, поврежденный из-за изменения расстановки переводов строки при отправке текста почтовыми клиентом в режиме "format=flawed";
  • Приняты более жесткие правила в отношении "git push" и "git fetch", в случаях когда обновление ссылки приводит к нарушению согласованности, например, при извлечении и обновлении в существующие тэги. Команда "git fetch" теперь запрещает извлечение в существующие теги при вызове без явного указания опции "--force";
  • В команды "git multi-pack-index" и "git fsck" добавлен код для определения повреждений в индексных файлах ".midx";
  • Добавлен индикатор прогресса при генерации файлов с графом коммитов (commit-graph) и при выполнении "git status" при обновлении индекса. Данные операции могут занимать достаточно много времени, что требует информирования пользователя для исключения впечатления о зависании;
  • Повышены требования при работе на платформе Windows, в качестве минимальной поддерживаемой версии заявлена Windows Vista;
  • В скрипты автодополенения ввода, поставляемые в contrib/, добавлена поддержка опций команды "git stash list". Дополнение для команды "git fetch --multiple" ограничено только именами с внешних хостов;
  • Подсказки, выводимые при помощи команд "git help -a" и "git help -av", разделены и сделаны более понятными новичкам. Вторая команда отличается кроме подробной информации о команде выводом списков альтернативных имен и внешних команд;
  • В команду "git grep" добавлена опция "git grep --recursive", отражающая поведение по умолчанию (обход всего дерева). Команда "git grep --no-recursive" может рассматриваться как аналог выставления настройки max-depth в значение 0;
  • При отправке push-запроса к репозиторию, в котором используется альтернативное внешнее хранилище для хранения объектов, удаленный обработчик "git receive-pack" передает список используемых ссылок на внешнее хранилище для сокращения объема передаваемых объектов. В случае очень большого числа подобных ссылок, экономия трафика за счет сокращения числа передаваемых объектов сводится на нет необходимостью передачи списка очень большого размера. В новой версии добавлены настройки для управления выдачей информации об альтернативных ссылках;
  • Команда "git cmd --help" в случае, если "cmd" является псевдонимом другой команды, теперь не только выводит ссылку на основную команду, но и сразу выводит подсказку для этой команды;
  • Улучшена работа команды "git p4 unshelve";
  • В команде "rev-list --filter" добавлена поддержка фильтра "tree:0" для исключения всех деревьев;
  • В команде "git send-email" реализовано выявление строк с адресами из всех примечаний, заканчивающихся на "-by". Для отключения нового поведения добавлена опция "--suppress-cc=misc-by" и настройка "sendemail.suppresscc = misc-by";
  • Модернизирована логика выбора имени пользователя и email на платформе Windows;
  • В "git mergetool" добавлена опция "--[no-]gui", работающая по аналогии с "git difftool";
  • В команду "git rebase -i" добавлена поддержка ключа 'break', который можно добавлять в списки to-do для индикации конца списка до его фактического завершения;
  • Для опции "--pretty=format:" предложены новые заполнители "%GF" и "%GP", показывающие слепки ключей GPG;
  • Для платформ со свежими версиями библиотеки cURL добавлена настройка http.sslBackend, позволяющая выбрать различные бэкенды для обработки защищенных HTTPS-соединений. В Windows данная настройка позволяет переключиться между использованием OpenSSL и Secure Channel;
  • В команду "git send-email" добавлена опция "--smtp-auth=none" для отключения SMTP-аутентификации, даже если в настройках задано имя пользователя для SMTP;
  • Добавлен новый класс файлов конфигурации, прикрепляемых к разным рабочим веткам в одном репозитории (до этого предоставлялась возможность определения глобальных настроек, привязки к домашнему каталогу пользователя и привязки к репозиторию ($GIT_DIR/config));
  • Маска '**', указанная без слеша с одной из сторон, которая считалась некорректной, теперь воспринимается как маска для определения наличия двух символов звездочка;

  • Реализации команд "git submodule update", "git rebase" и "git rebase -i" полностью переписаны на языке Си. Проведена чистка кода, используемого для команд "git status" и "git commit --dry-run";

  • Обеспечена возможность параллельного чтения индексных файлов для повышения производительности. Увеличена эффективность обхода дерева репозитория при извлечении веток и операциях слияния. Внесены оптимизации при частичном клонировании, связанные с кэшированием.

Магія східної кухні: особливості та традиції

Магія східної кухні: особливості та традиції

Східна кухня відома різноманіттям ароматів та смаків. Вона заснована на глибоких традиціях, історії та має особливості приготування. Звички формувалися впродовж багатьох століть під впливом різних культур та географічних особливостей. Вони присутні в кожній...

25 ноября 2024

Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх