Release fan Git 2.38 boarne kontrôle systeem

De frijlitting fan it ferspraat boarnekontrôlesysteem Git 2.38 is oankundige. Git is ien fan 'e populêrste, betroubere en heechprestearjende ferzjekontrôlesystemen, en leveret fleksibele net-lineêre ûntwikkelingsark basearre op fertakking en gearfoeging. Om de yntegriteit fan 'e skiednis en ferset tsjin retroaktive feroarings te garandearjen, wurdt ymplisyt hashing fan' e heule foarige skiednis brûkt yn elke commit; it is ek mooglik om yndividuele tags te sertifisearje en commits mei digitale hantekeningen fan 'e ûntwikkelders.

Yn ferliking mei de foarige release omfette de nije ferzje 699 feroarings, taret mei de dielname fan 92 ûntwikkelders, wêrfan 24 foar it earst meidien oan ûntwikkeling. Wichtichste ynnovaasjes:

  • В основной состав включена утилита «scalar», разработанная компанией Microsoft для управления крупными репозиториями. Утилита изначально была написана на языке C#, но в git включён переделанный вариант на языке Си. Новая утилита отличается от команды git включением по умолчанию дополнительных возможностей и настроек, влияющих на производительность при работе с очень крупными репозиториями. Например, при использовании scalar применяется:
    • Частичное клонирование для работы с неполной копией репозитория.
    • Встроенный механизм отслеживания изменений в файловой системе (FSMonitor), позволяющий обойтись без перебора всего рабочего каталога.
    • Индексы, охватывающие объекты в разных pack-файлах (multi-pack).
    • Файлы commit-graph с индексом графа коммитов, применяемым для оптимизации доступа к информации о коммитах.
    • Фоновые периодические работы для поддержания оптимальной структуры репозитория в фоновом режиме, не блокируя интерактивный сеанс (раз в час выполняется работа по упреждающей загрузке свежих объектов из удалённого репозитория и обновлению файла с графом коммитов, а каждую ночь запускается процесс упаковки репозитория).
    • Режим «sparseCheckoutCone», ограничивающий допустимые шаблоны при частичном клонировании.
  • В команду «git rebase» добавлена опция «—update-refs» для обновления зависимых веток, пересекающихся с перемещаемыми ветками, чтобы вручную не выполнять операции checkout к каждой зависимой ветке для переключения на требуемый коммит.
  • Обеспечена совместимость команды «git rm» с частичными индексами.
  • Улучшено поведение команды «git mv A B» при перемещении файла из рабочей области с частичными индексами в режиме «cone» во внешнюю область, для которой данный режим не применяется.
  • Проведена оптимизация формата bitmap-фалов для работы с большими репозиториями — добавлена опциональная индексная таблица со списком выбранных коммитов и их смещений.
  • В команде «git merge-tree» реализован новый режим при котором на основе двух указанных коммитов вычисляется дерево с результатом слияния, так, как если бы истории этих коммитов были объединены.
  • Добавлена настройка «safe.barerepository» для управления возможностью размещения bare-репозиториев (репозитории, не содержащие рабочего дерева) внутри других git-репозиториев. При установке в значение «explicit» будет допускаться работа с bare-репозиториями, размещёнными только в верхнем каталоге. Для возможности размещения bare-репозиториев в подкаталогах следует использовать значение «all».
  • В команду «git grep» добавлена опция «-m» («—max-count»), аналогичная одноимённой опции в GNU grep и позволяющая ограничить число выводимых совпадений.
  • В команде «ls-files» реализована опция «—format» для настройки выводимых полей (например, можно включить вывод имени объекта, режимов и т.п.).
  • В «git cat-file» при показе содержимого объектов реализована возможность учёта привязок авторов к email, заданных в файле mailmap.

Boarne: opennet.ru

Add a comment