Пускането на системата за управление на изходния код Git 2.46.

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

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

  • Добавена е експериментална поддръжка на нов тип битови карти — „pseudo-merge reachability bitmap“, при които, за разлика от структурата на „reachability bitmap“, данните за наборите от обекти, свързани с комити, се съхраняват не привързани към всеки отделен комит, а веднага към няколко комита. Тази организация позволява използването на една битова карта при определяне на обектите за комити в различни ветки, което в големи репозитории дава възможност да се избегне създаването на множество отделни битови карти и значително ускорява обхода на обектите за определяне на това, кои обекти да бъдат изпратени на клиента при изпълнението на операции като „git fetch“, „git rev-list“ и „git clone“. За включване на новия тип битови карти и определяне на логиката им за избор и употреба е предложена серия от настройки „bitmapPseudoMerge“: git config bitmapPseudoMerge.all.pattern ‘refs/(heads|tags)/’ git config bitmapPseudoMerge.all.threshold now git config bitmapPseudoMerge.all.stableThreshold never git repack -adb
  • Въвежда се нов интерфейс на командния ред за командата «git config», при който вместо разпръснати опции за преглед, преименуване и изтриване на настройки и секции, като «—get», «—get-all», «—unset» и «—remove-section», е предложен набор от отделни подкоманди. Например, за извеждане на всички настройки на репозитория, сега можете да използвате командата «git config list», а за преглед на съдържанието на определен параметър — командата «git config get ». За допълнителна филтрация на резултатите с опцията «—regexp» можете да зададете филтър на базата на регулярни изрази.
  • В протокола «credential helper», използван за передаване на удостоверителни данни при достъп до репозитории с ограничен достъп, е добавена поддръжка на новите полета «authtype» и «credential», които позволяват създаването на обработчици за системи за HTTP-аутентификация, които не са ограничени само до проверка на потребителско име и парола, например, при прилагане на Bearer Token в OAuth 2.0. Преди това за работа с подобни системи за аутентификация трябваше да се посочат конфиденциални данни в открит вид в параметъра http.extraHeader. Освен това, в протокола е добавена възможността за запазване на състоянието на всеки обработчик на удостоверителни данни, за да се поддържат многоетапни методи за аутентификация, използвани в протоколи като NTLM и Kerberos.
  • Продължава развитието на експерименталния бекенд «reftable» за ефективно съхранение в репозитория на връзки към клонове и тагове. Този бекенд използва блочно хранилище, прилагано от проекта JGit и оптимизирано за съхранение на много голям брой връзки (традиционните формати за съхранение на връзки водят до значителни разходи в репозитории с голям брой връзки поради разпределението на много файлове в един каталог, когато връзките се съхраняват в каталога $GIT_DIR/refs, или необходимостта от презаписване на един голям файл при всяко обновление, когато връзките се съхраняват в файла $GIT_DIR/packed_refs). В новата версия е добавена командата «git refs migrate —ref-format=reftable» за прехвърляне на съществуващи репозитории на бекенда «reftable» (преди това бекендът се активираше само при инициализация на репозитория).
  • В git е добавена опцията «—no-advice», която изключва всички съобщения с препоръки и подсказки, което може да бъде полезно за предотвратяване на запълването на логовете с ненужна информация при автоматично извикване на git.
  • Започна процесът по преобразуване на някои проверки от тестовия набор в използването на unit тестове, което ще опрости тестването на нискоуровневите компоненти и ще увеличи ефективността на процеса на тестване на платформата Windows, където има големи разходи при стартиране на голямо количество процеси по време на изпълнение на тестовете, реализирани под формата на shell скриптове.
  • В кода за анализ на цветовите настройки е добавена възможност за използване на формата «#RGB» в допълнение на «#RRGGBB».

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

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