Доступна система управления исходными текстами Git 2.43

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3255
Зарегистрирован: 20.08.2022

#

Доступна система управления исходными текстами Git 2.43
Дата публикации:Wed, 22 Nov 2023 15:06:33 +0300




После трёх месяцев разработки опубликован выпуск распределенной системы управления исходными текстами Git 2.43. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям "задним числом" используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов.



По сравнению с прошлым выпуском в новую версию принято 464 изменения, подготовленные при участии 80 разработчиков, из которых 17 впервые приняли участие в разработке. Основные новшества:
  • В команду "git repack" добавлены опции "--filter" и "--filter-to", позволяющие выполнить переупаковку репозитория c учётом заданного фильтра объектов, и при необходимости перенести в отдельное место объекты, не удовлетворяющие заданному фильтру. Опции можно использовать для разделения репозитория в соответствии с определёнными критериями (например, для выноса ненужных или слишком больших объектов), сохраняя при этом возможность доступа ко всем частям при помощи частичного клонирования. Например для оставления в репозитории блобов, размером менее 1 МБ, и выносом в отдельный репозиторий остальных крупных объектов, можно выполнить:

    $ git init --bare ../backup.git
    $ git repack -ad --filter='blob:limit=1m' \
    --filter-to=../backup.git/objects/pack/pack




    Инициализация репозитория при помощи частичного клонирования позволяет работать с неполной копией репозитория, корректно обрабатывая обращения к отсутствующим объектам (при обращении к отсутствующим объектам, они на лету будут загружаться по мере необходимости).


    Добавлена возможность работы с несколькими pack-файлами с информацией о недостижимых объектах ("cruft packs"), на которые в репозитории отсутствуют ссылки (не ссылаются ветки или теги). При помощи новой опции "git repack --max-cruft-size" можно определить максимальный размер отдельного pack-файла и добиться разделения базы недостижимых объектов на серию pack-файлов небольшого размера. Использование нескольких мелких pack-файлов вместо одного крупного позволяет значительно сократить операции ввода/вывода при переупаковке репозиториев с большим числом недостижимых объектов, так как для каждой операции переупаковки не нужно будет перезаписывать все данные.


    Добавлено распознавание попыток выполнения двойной отмены коммита через "git revert" и учёт этого факта при формировании сообщения об отмене (при повторном "git revert" вместо "Revert: Revert: fix bug" будет записано "Reapply fix bug", а если откатить изменение третий раз - "Revert Reapply fix bug").

    $ git revert --no-edit HEAD >/dev/null
    $ git revert --no-edit HEAD >/dev/null
    $ git log --oneline
    a300922 (HEAD -> main) Reapply "fix bug"
    0050730 Revert "fix bug"
    b290810 fix bug


    Разрешено совместное использование опций "--rfc" и "--subject-prefix". Например, для формирования письма с префиксом "[RFC PATCH bpf-next]" в теме сообщения можно указать:

    $ git format-patch --subject-prefix="PATCH bpf-next" --rfc


    В команде "git log" разрешено указание заполнителя "%(decorate)" для показа имён связанных веток при определении формата при помощи опции "--format", например:

    $ git log --format='%cr%(decorate) (%h) %s'
    3 days ago (HEAD -> master, origin/master, origin/HEAD) (e0939bec27) RelNotes: minor wording fixes in 2.43.0 release notes
    7 days ago (tag: v2.43.0-rc1) (dadef801b3) Git 2.43-rc1
    7 days ago (8ed4eb7538) Merge branch 'tb/rev-list-unpacked-fix'



    В "git for-each-ref" и похожие команды добавлена возможность применения правил .mailmap к заданным через опцию "--format" спецификаторам формата, таким как "%(authorname)" и "%(committeremail)".


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=60150

Жизнь за Нер'зула!

Ответить