Випуск розподіленої системи керування вихідними текстами Git 2.27

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

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

  • Скасовано реалізоване у минулому випуску включення за замовчуванням другою версією комунікаційного протоколу Git, який використовується при віддаленому підключенні клієнта до Git-сервера. Протокол визнано поки що не готовим до використання за умовчанням через виявлення слизьких моментів, які потребують окремого розгляду.
  • Додано набір опцій для налаштування SSL-з'єднання під час звернення через проксі.
  • Розширено інформацію, що видається під час використання перетворюючих фільтрів «clean» та «smudge». Наприклад, тепер відображається об'єкт деревоподібний, в якому з'являється перетворюваний блоб.
  • Для уникнення плутанини в команді «git describe» тепер завжди застосовується розширений режим виведення («—long»), якщо виявлений пов'язаний з коммітом замінений тег (раніше підписаний або анотований тег, що описує коміт, виводився навіть якщо він був перейменований або переміщений в ієрархії "refs/tags/", і команда "git show тег^0" не працювала як очікувалося - "refs/tags/тег" не знаходився або навіть видавався вже інший тег).
  • При виконанні "git pull" тепер видається попередження, якщо явно не задана конфігураційна змінна pull.rebase і не застосовані опції "-[no-]rebase" або "-ff-only". Для придушення попередження тими, хто не має наміру виконувати операцію rebase, можна встановити змінної значення «false».
  • Проведено ревізію опцій «git pull», загальних з «git fetch». Документовані раніше не згадані подібні опції та забезпечено передачу в git fetch пропущених опцій.
  • До команди «git rebase» додано опцію «—no-gpg-sign» для перевизначення налаштування «commit.gpgSign».
  • У «git format-patch» додано можливість відображення заголовків «From:» та «Subject:» у незмінному вигляді, без перетворення символів, відсутніх у кодуванні ASCII.
  • У «git log» додано опцію «-show-pulls», що дозволяє переглянути не тільки коміти, в яких було виконано зміни, але й коміт для злиття цих змін з окремої гілки.
  • Уніфіковано обробку інтерактивного введення у всіх компонентах та додано виклик fflush() після показу запрошення введення, але перед операцією читання.
  • У git rebase дозволено без попереднього виконання операції checkout повторно застосувати всі локальні комміти, навіть якщо деякі з них раніше були передані в upstream.
  • Значення конфігураційної змінної 'pack.useSparse' замінено на 'true' для включення за замовчуванням оптимізацій, що раніше подаються як експериментальні.
  • До «git merge» додано опцію «—autostash».
  • Покращено інтерфейс «sparse-checkout».
  • У git update-ref —stdin додано кілька нових дій,
    дозволяють прямо контролювати транзакції оновлення посилань, наприклад, для реалізації двоетапного атомарного оновлення посилань у декількох репозиторіях.

  • Додані шаблони userdiff для документів Markdown.
  • Прибрано обмеження на виключення всіх шляхів у шаблонах sparse-checkout, що призводять до порожнього дерева.
  • Операція "git restore -staged -worktree" тепер за умовчанням використовує вміст з гілки "HEAD", замість виведення помилки.
  • Продовжено роботу з переходу на алгоритм хешування SHA-2 замість SHA-1.
  • Перероблено код для взаємодії з GnuPG.

Джерело: opennet.ru

Додати коментар або відгук