Git 2.36 вже вийшов, і це його новини

Через три місяці розвитку була випущена нова версія системи розподіленого контролю вихідного коду «Git 2.36» одна з найпопулярніших, надійних і високопродуктивних систем контролю версій, що забезпечує гнучкі нелінійні інструменти розробки, засновані на форках і злиттях форків.

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

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

Порівняно з попереднім випуском, в новій версії, підготовленої за участю 717 розробників, прийнято 96 змін, з яких 26 брали участь у розробці вперше. Основні нововведення:

Вибір «–remerge-diff» додано до команд «git log» і «git show», щоб показати відмінності між загальним результатом злиття і фактичними даними, відображеними в коміті після обробки команди «злиття», що дозволяє візуально оцінити зміни, внесені в результаті вирішення конфлікту злиття. Звичайна команда «git show» розділяє різні способи вирішення конфліктів відступами, що ускладнює розуміння змін.

При використанні опції “–remerge-diff”, відмінності між вирішенням конфліктів не розділяються для кожної батьківської гілки, але показуються загальні відмінності між файлом, який має конфлікти злиття, і файлом, який усунув конфлікти.

Ще одна помітна зміна – це покращена гнучкість у налаштуванні поведінки з очищення кешу диска через виклик функції fsync(). Параметр core.fsyncObjectFiles доступний раніше був розділений на дві змінні конфігурації core.fsync і core.fsyncMethod, що надає можливість застосовувати fsync не лише до об’єктних файлів (.git/objects), але й до інших структур git, таких як посилання (.git /refs), reflog та файли пакетів.

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

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

Також підкреслюється, що додано опцію «–batch-command» до команди «git cat-file», який призначений для створення оригінального вмісту об’єктів Git, доповнюючи команди «–партія» та «–партійна перевірка» раніше доступний з можливістю адаптивного вибору типу виводу через «content » для відображення вмісту або «інформація » для відображення інформації про об’єкт. Також для очищення вихідного буфера підтримується команда "flush".

З іншого боку, це підкреслюється додано параметр «–oid-only» («–об’єктний лише») до команди "git ls-tree", яка призначена для перерахування вмісту дерева об'єктів, яке, за аналогією з "–name -only", відображає лише ідентифікатори об'єктів для спрощення викликів зі скриптів. Також реалізовано параметр «–format», який дозволяє визначити власний формат виводу, поєднуючи інформацію про режим, тип, назву та розмір.

З інших змін що виділяються з цієї нової версії:

  • У команді «git bisect run» реалізовано визначення не встановлювати знак виконуваного файлу для сценарію та генерувати в цьому випадку помилки з кодами 126 або 127 (раніше, якщо сценарій не можна було виконати, всі перевірки були позначено як проблеми).
  • Додано опцію «–refetch» ​​до команди «git fetch», щоб отримати всі об’єкти, не повідомляючи іншу сторону вмісту, який уже є в локальній системі. Така поведінка може бути корисною для відновлення стану після збоїв, коли є невизначеність щодо цілісності локальних даних.
  • Команди "git update-index", "git checkout-index", "git read-tree" і "git clean" тепер підтримують часткове індексування (розріджений індекс), щоб підвищити продуктивність і заощадити простір у сховищах, які виконують часткові операції. (погана оплата).
  • Змінена поведінка команди "git clone --filter=... --recurse-submodules", яка тепер призводить до часткового клонування підмодулів (раніше при виконанні таких команд фільтр застосовувався лише до основного вмісту, а підмодулі повністю клоновано без урахування фільтра).
  • Додана підтримка визначення фільтрів для вибіркового розміщення вмісту в команді «git bundle», подібно до операцій часткового клонування.
  • Додано опцію «–recurse-submodules» до команди «git branch» для рекурсивного проходження підмодулів.
    Userdiff запропонував новий драйвер для мови Kotlin.

В кінці кінців якщо вам цікаво дізнатись більше про це про цю нову версію Git 2.36 ви можете ознайомитися з деталями в за наступним посиланням.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.