Itusilẹ iṣakoso orisun Git 2.38

Itusilẹ ti eto iṣakoso orisun pinpin Git 2.38 ti ṣafihan. Git jẹ ọkan ninu olokiki julọ, igbẹkẹle, ati awọn eto iṣakoso ẹya ti o ga julọ ti o pese awọn irinṣẹ idagbasoke ti kii ṣe laini ti o da lori awọn ẹka ati idapọmọra awọn ẹka. Lati rii daju iduroṣinṣin ti itan ati atako si awọn ayipada ifẹhinti, hashing ti gbogbo itan ti tẹlẹ ninu ifaramo kọọkan ni a lo, o tun ṣee ṣe lati rii daju awọn ami kọọkan ati ṣe pẹlu awọn ibuwọlu oni nọmba lati ọdọ awọn olupilẹṣẹ.

Ti a ṣe afiwe si itusilẹ ti tẹlẹ, awọn ayipada 699 ni a gba sinu ẹya tuntun, ti a pese sile pẹlu ikopa ti awọn olupilẹṣẹ 92, eyiti 24 ṣe alabapin ninu idagbasoke fun igba akọkọ. Awọn imotuntun akọkọ:

  • В основной состав включена утилита «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.

orisun: opennet.ru

Fi ọrọìwòye kun