Git 2.38 మూల నియంత్రణ విడుదల

పంపిణీ చేయబడిన మూల నియంత్రణ వ్యవస్థ యొక్క Git 2.38 విడుదల పరిచయం చేయబడింది. Git అత్యంత ప్రజాదరణ పొందిన, విశ్వసనీయమైన మరియు అధిక-పనితీరు గల సంస్కరణ నియంత్రణ వ్యవస్థలలో ఒకటి, ఇది శాఖలను విభజించడం మరియు విలీనం చేయడం ఆధారంగా సౌకర్యవంతమైన నాన్-లీనియర్ డెవలప్‌మెంట్ సాధనాలను అందిస్తుంది. చరిత్ర యొక్క సమగ్రతను నిర్ధారించడానికి మరియు ప్రతిఘటన మార్పులకు ప్రతిఘటనను నిర్ధారించడానికి, ప్రతి కమిట్‌లో మునుపటి మొత్తం చరిత్ర యొక్క అవ్యక్త హాషింగ్ ఉపయోగించబడుతుంది, డెవలపర్‌ల నుండి డిజిటల్ సంతకాలతో వ్యక్తిగత ట్యాగ్‌లు మరియు కమిట్‌లను ధృవీకరించడం కూడా సాధ్యమవుతుంది.

మునుపటి విడుదలతో పోలిస్తే, కొత్త వెర్షన్‌లో 699 మార్పులు ఉన్నాయి, 92 మంది డెవలపర్‌ల భాగస్వామ్యంతో తయారు చేయబడింది, అందులో 24 మంది మొదటిసారిగా అభివృద్ధిలో పాల్గొన్నారు. ప్రధాన ఆవిష్కరణలు:

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

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి