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

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

#

Выпуск системы управления исходными текстами Git 2.45
Дата публикации:Tue, 30 Apr 2024 22:45:38 +0300




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



По сравнению с прошлым выпуском в новую версию принято 540 изменений, подготовленных при участии 96 разработчиков, из которых 35 впервые приняли участие в разработке. Основные новшества:
  • Добавлена предварительная поддержка бэкенда "reftable" для эффективного хранения в репозитории ссылок на ветки и теги. Новый бэкенд использует блочное хранилище, применяемое проектом JGit и оптимизированное для хранения очень большого числа ссылок (традиционные форматы хранения ссылок приводят в репозиториях с большим числом ссылок к ощутимым накладным расходам из-за размещения очень большого числа файлов в одном каталоге в случае хранения ссылок в каталоге $GIT_DIR/refs или необходимости перезаписи одного большого файла при каждом обновлении в случае хранения ссылок в файле $GIT_DIR/packed_refs). Новый бэкенд включается через указание опции "--ref-format=reftable" при инициализации репозитория ("git init --ref-format=reftable /path/to/repo") и позволяет ускорить поиск, чтение и запись в репозиториях с большим числом ссылок.

    Предоставлены средства для обеспечения переносимости между идентификаторами объектов на базе хэшей SHA-1 и SHA-256. Для обеспечения работы с хэшами SHA-1 и SHA-256 в одном репозитории в процессе постепенной миграции на хэши SHA-256 предложен новый формат объектов "compatibility", позволяющий ссылаться на объекты не только по основному хэшу, заданному при инициализации репозитория, но и по запасному хэшу. Например, при инициализации репозитория можно выбрать формат SHA-256, а в качестве запасного определить хэш SHA-1:

    git init --object-format=sha256 /path/to/repo
    cd /path/to/repo
    git config extensions.compatObjectFormat sha1


    В команду "git rev-list" добавлена возможность отображения идентификаторов объектов, отсутствующих в локальном репозитории, даже если они недостижимы в ветке или теге, что можно использовать для диагностики повреждения репозитория:

    git rev-list --missing=print --all | grep '^?'

    ?70678e7afeacdcba1242793c3d3d28916a2fd152


    Добавлена новая команда "git reflog list" для показа известных reflog-ов и соответствующих им ссылок на теги и ветки.

    Предоставлена возможность определения альтернативных префиксов для вывода "git diff", отображаемых перед файловым путём и обозначающих состояние до и после определённой версии файла (по умолчанию используются префиксы "a/" и "b/"). Для задания собственных префиксов в конфигурацию добавлены новые параметры diff.srcPrefix и diff.dstPrefix.


    Добавлен параметр core.commentString для определения строки-разделителя, которая будет использоваться вместо символа "#" для игнорирования комментариев в сообщении для коммита. Ранее доступная настройка core.commentChar адаптирована для поддержки многобайтовых символов в качестве разделителя комментария (ранее поддерживались только ASCII-символы).


    В команду "git config" добавлена опция "--comment", позволяющая сохранять комментрии в файле .gitconfig для пояснения сути тех или иных настроек.

    git config --comment 'to show the merge base' merge.conflictStyle diff3
    tail -n 2 .git/config
    [merge]
    conflictStyle = diff3 # to show the merge base

    В команду "git cherry-pick" добавлена опция "--empty" для автоматического удаления избыточных коммитов, по аналогии с опцией "--empty" в git-rebase и git-am.


    В команде "git checkout -p" разрешено использовать символ "@" в качестве синонима имени "HEAD".


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

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

Ответить