Издадено е управлението на изходния код Git 2.38

Представен е новият 2.38. издание на разпределената система за управление на изходния код Git. Git е една от най-популярните, надеждни и високо производителни системи за управление на версии, предоставяща гъвкави средства за нелинейно развитие, базирани на клоновете и сливанията. За гарантиране на целостта на историята и устойчивостта на промените „задномислено“ се използва неявно хеширане на цялата предишна история в всеки комит, като също така е възможно удостоверяването с цифрови подписи на разработчиците на определени тагове и комити.

В сравнение с предишното издание, в новата версия са включени 699 промени, подготвени с участието на 92 разработчици, от които 24 за първи път участват в разработката. Основните нововъведения са:

  • В основния състав е добавен инструментът „scalar“, разработен от Microsoft за управление на големи репозитории. Инструментът първоначално е написан на C#, но в git е включена преработена версия на C. Новият инструмент се отличава от командата git с включването по подразбиране на допълнителни функционалности и настройки, които оказват влияние върху производителността при работа с много големи репозитории. Например, при използването на scalar се прилага:
    • Частично клониране за работа с непълна копия на репозитория.
    • Вграден механизъм за проследяване на промените в файловата система (FSMonitor), позволяващ да се избегне обхождането на цялата работна директория.
    • Индекси, обхващащи обекти в различни pack-файлове (multi-pack).
    • Файлове commit-graph с индекс на графа на комитите, приложен за оптимизиране на достъпа до информацията за комитите.
    • Фонови периодични операции за поддържане на оптимална структура на репозиторията в фонов режим, без да блокират интерактивната сесия (веднъж на час се изпълнява работа по предварителното зареждане на нови обекти от отдалечен репозиторий и обновяване на файла с графа на комитите, а всяка нощ се стартира процесът на опаковане на репозитория).
    • Режимът „sparseCheckoutCone“, който ограничава допустимите шаблони при частично клониране.
  • В командата „git rebase“ е добавена опцията „—update-refs“ за обновяване на зависимите клонове, които пресичат преместваните клонове, за да не се налага ръчно да се извършват операции checkout на всеки зависим клон, за да се превключи на необходимия комит.
  • Осигурена съвместимост на командата «git rm» с частични индекси.
  • Подобрено поведението на командата «git mv A B» при преместване на файл от работната област с частични индекси в външна област, за която този режим не е приложим.
  • Извършена оптимизация на формата на 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» при показване на съдържанието на обекти е реализирана възможност за отчитане на привързаности на авторите към имейл адреси, зададени в файла mailmap.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster