Git 2.26.0 пропонує реальний пошук вмісту, деякі експериментальні функції та багато іншого

git-2-26

Нова версія системи контролю версій , Git 2.26.0, вже доступна , вона приносить кілька нових функцій , експериментальну підтримку та, найголовніше, оптимізації. Для тих, хто не знайомий з Git, це одна з найпопулярніших, надійних та високопродуктивних систем контролю версій , що надає гнучкі, нелінійні інструменти розробки на основі розгалуження та злиття.

Для забезпечення цілісності історії та стійкості до ретроспективних змін у кожному коміті використовується неявний хеш усієї попередньої історії; також є можливість цифрового підпису розробників окремих тегів та комітів.

Порівняно з попереднім релізом, у новій версії прийнято 504 зміни, підготовлені за участю 64 розробників, 12 з яких брали участь у розробці вперше.

Ключові нові можливості Git 2.26.0

Ця нова версія переводить стандартну версію 2 протоколу зв'язку Git , яка використовується під час віддаленого підключення клієнта до сервера Git. Версія 2 вирізняється можливістю фільтрувати гілки та теги на стороні сервера, повертаючи клієнту стислий список посилань.

Ще одним важливим нововведенням є можливість додавати нові функції до протоколу , коли нові функції стають доступними в інструментарії. Клієнтський код залишається сумісним з попереднім протоколом і може продовжувати функціонувати як з новими, так і зі старими серверами, автоматично повертаючись до першої версії, якщо сервер не підтримує другу.

Варіант "–Шоу-сфера« було додано до команди «git config", що спрощує ідентифікацію місця, де визначені певні конфігурації.
Git дозволяє визначати конфігурації в різних місцях: у сховищі (.git / info / config), в каталозі користувача (~ / .gitconfig), у загальносистемному файлі конфігурації (/ etc / gitconfig), а також через параметри командного рядка та змінні середовища.

Під час запуску ` git config` досить важко зрозуміти, де саме визначено потрібну конфігурацію. Для вирішення цієї проблеми була доступна опція ` --show-origin` , але вона показує лише шлях до файлу, де визначено конфігурацію, що корисно, якщо ви маєте намір редагувати файл, але не корисно, якщо вам потрібно змінити значення через `git config` за допомогою опцій `--system`, `--global` або `--local`.

З іншого боку, в анонсі цієї нової версії згадується, що було продовжено розширення експериментальної підтримки часткових клонів , що дозволяє передавати лише частину даних та працювати з неповною копією репозиторію.

У новій версії додано нову команду "git sparse-checkout add" , яка дозволяє додавати окремі каталоги для застосування операції " checkout " лише до частини робочого дерева, замість того, щоб перераховувати всі ці каталоги одночасно за допомогою команди " git sparse-checkout set ".

Продуктивність команди " git grep ", яка використовується для пошуку як фактичного вмісту репозиторію, так і історичних версій, значно зростає.

Для пришвидшення пошуку було дозволено сканування робочого дерева за допомогою кількох потоків (" git grep --threads "), але пошук історичних версій був однопотоковим. Це обмеження тепер усунено завдяки реалізації можливості паралелізації операцій читання сховища об'єктів .

За замовчуванням кількість потоків встановлюється рівною кількості ядер процесора, що в більшості випадків тепер не вимагає явного налаштування опції " --threads ".

Додано підтримку автодоповнення введених підкоманди , шляхів, посилань та інших аргументів команди "git worktree", що дозволяє працювати з кількома робочими копіями репозиторію.

Також ми можемо знайти нову версію скрипта fsmonitor-watchman , який забезпечує інтеграцію з механізмом Facebook Watchman для пришвидшення відстеження змін файлів та появи нових файлів. Після оновлення Git необхідно замінити хук у репозиторії.

Якщо ви хочете дізнатися більше про цей новий реліз, ви можете ознайомитися з оригінальною статтею за наступним посиланням.


Додати як пріоритетне джерело в Google