Преди няколко дни беше обявено Пускане на пазара на новата версия на проекта Git 2.50, въвеждане на повече от 600 промени водена от активна общност, която този път включваше 98 разработчици, включително 35 нови сътрудници.
Тази нова версия на Git 2.50 се отличава с интегрирането на нови команди (git-diff-pairs), нови функции за почистване, филтриране и поддръжка, замяната на рекурсивния механизъм за сливане с ORT, както и подобрения в производителността и корекции на грешки.
Ключови нови функции на Git 2.50
В тази нова версия на Git 2.50, една от най-важните нови функции е оптимизация при третирането на така наречените „опаковки от суровини“, Тоест, пакети с обекти, които са недостъпни или не са посочени от клонове или тагове. Традиционно Git съхраняваше тези обекти в един, голям пакетен файл, което можеше да причини проблеми с производителността при преопаковане на хранилища с много от тези елементи.
С новата версия, Git ви позволява да разделите тези cruft пакети на няколко по-малки файла, което намалява използването на дисково пространство и подобрява производителността на входно/изходните операции за групови операции. В допълнение, sи въведете опцията –combine-cruft-below-sizeРазрешаването комбинирайте малки пакети в един по-гъвкаво отколкото предишната опция –max-cruft-size, без да се налага ограничение върху комбинирания размер на файла. Тази нова функция е особено полезна в проекти със осиротели обекти, разпръснати в множество пакети.
Друго подобрение, насочено към големи хранилища, е експериментална поддръжка за постепенната актуализация на Индекси MIDX , който съхранява информация за обекти в отделни слоеве използване на растерни файлове, което позволява по-бързи актуализации при добавяне на нови комити. Това подобрение е от решаващо значение за големи хранилища, които изискват бързи операции по индексиране, без да се налага пълно възстановяване на метаданните.
Пълна подмяна на рекурсивния енджин за сливане с ORT
Git 2.50 въвежда голяма промяна с окончателно премахване на рекурсивния термоядрен двигател традиционен. Вместо това, употребата на ORT е консолидирана, ООН по-модерен, по-лесно поддържан и ефективен двигател за синтез. ORT не само предлага по-прецизен анализ на конфликти, но също така ви позволява да проверите дали е възможно сливане без генериране на допълнителни обекти. Освен това, командата merge-tree вече включва опция –quiet за използване като тиха проверка за сливане, без да се променя хранилището.
gitt-diff-pairs: решението на проблемите с мащабируемостта
Прегледът на кода несъмнено е един от стълбовете на съвременната съвместна разработка, а разликите или diff-овете между ревизиите играят важна роля в този процес. С появата на Git 2.50 беше въведено решение, предназначено за мащабируемост: новата команда git-diff-pairs.
Традиционно, за да получите сравнение между две ревизии, използвате команда като:
git diff HEAD~1 HEAD
Това генерира пълен пач, съдържащ всички промени между изброените редакции. Макар и ефективен в много случаи, може да представлява проблем с производителността при работа с големи набори от модифицирани файлове.
Ето защо git-diff-pairs е специално проектиран да получава суров вход директно от изхода на git diff-tree и да генерира съответните пачове ефективно и точно.
Употребата е толкова проста, колкото:
git diff-tree -r -z -M HEAD~ HEAD | git diff-pairs -z
Тази команда взема предоставените двойки blob обекти и генерира точния резултат за разлика (diff), запазвайки контекстуалната информация и позволявайки работата да бъде разделена на по-малки партиди. Това отваря вратата за паралелна обработка, подобрява ефективността на ресурсите и улеснява мащабируемостта в инструменти, базирани на разлика, като GitLab.
Нови функции за почистване, филтриране и поддръжка
Git 2.50 включва няколко допълнителни инструмента, предназначени да подобрят поддръжката на хранилищата:
- Командата е добавена пускане на git reflog, което ви позволява напълно да изтриете reflog-а за конкретен клон, идеално за почистване на историята на работата ви, когато вече не е необходимо да поддържате предишни препратки.
- Опцията –филтър cat-file –batch вече е наличен в git, което ви позволява да филтрирате резултатите по тип обект.
Освен това са подчертани и няколко вътрешни оптимизации:
- Подобрено използване на символни връзки, с кеширане на префикси и намаляване на излишните проверки.
- Премахване на Perl зависимостите в документацията и тестовите скриптове, замествайки ги с shell функции или C имплементации, което ги прави по-лесни за компилиране на системи с минималистични конфигурации.
- Включително контролер разлика в потребители за анализ на разликите в .ini файловете.
- Подобрена съвместимост на командата git send-email със SMTP сървъри, като например Outlook.
И накрая, ако се интересувате да научите повече за него, можете да се консултирате с подробностите в следваща връзка.