LINUX.ORG.RU

Git 2.49

 , ,

Git 2.49

0

3

14 марта, после двух месяцев разработки, состоялся выпуск 2.49 распределённой системы управления версиями Git, написанной на языке C и распространяемой по лицензии GNU GPL 2.

Список основных изменений:

  • Обновлён скрипт автодополнения для zsh.
  • В git pack-objects и его обёртку git repack добавлена возможность использования альтернативной функции хеширования путей.
  • В git gc добавлена поддержка опции --expire-to.
  • В команду git clone добавлена подддержка создания неглубокого клонирования для одного коммита, который не обязательно должен находиться на вершине ветви.
  • Добавлена команда git backfill для загрузки недостающих объектов в частичном клоне.
  • Исправлена ошибка потери статуса ошибки от дочернего процесса в команде git push --atomic --porcelain.
  • В команду git rev-list --missing= добавлена поддержка параметра print-info для более детального вывода информации об отсутствующих объектах, таких как путь и тип.
  • Обновлена GUI-утилита gitk.
  • В git refs migrate добавлена поддержка параметра --no-reflog, позволяющего не переносить рефлог.
  • Для Meson добавлена поддержка опции небезопасной реализации sha1, добавленной в git 2.48.
  • Добавлен новый API для группового обхода объектов на основе общего пути или по типу.
  • Для подготовки к использованию zlib-ng произведён рефакторинг кода взаимодействия с zlib.
  • Добавлены биндинги к библиотеке libgit для языка Rust.
  • Все файлы документации .txt переименованы в .adoc.
  • Расширен протокол promisor для больших объектов.
  • Исправлены обнаруженные ошибки.
  • Улучшены тесты.
  • Обновлена документация.

>>> Основные изменения в блоге GitHub

>>> Полный список изменений версии 2.49 на GitHub

★★★★★

Проверено: CrX ()
Последнее исправление: dataman (всего исправлений: 2)

Для Meson добавлена поддержка опции небезопасной реализации sha1, добавленной в git 2.48.

Зачем это нужно (не только в Meson, но и в самом Git)? В наше время sha1 практически бесполезно, а они её добавили. Как это аргументируется разработчиками? Как это предполагается использовать на практике?

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Как бэкдор, разве нет? Посмотри кто добавил этот коммит и думаю все станет на свои места.

vbcnthfkmnth123 ★★★★★
()
Последнее исправление: vbcnthfkmnth123 (всего исправлений: 1)
Ответ на: комментарий от mord0d

Как это аргументируется разработчиками?

Я в прошлой новости писал:

Добавлена поддержка компиляции с более производительными реализациями алгоритма SHA-1 вместо используемого сейчас алгоритма SHA1DC с детектированием коллизий ($ make OPENSSL_SHA1_UNSAFE=1 или $ make BLK_SHA1_UNSAFE=1).

dataman ★★★★★
() автор топика

git backfill

*пой чую? Тащемта, в логике последних изменений. Я про master -> main.

perl5_guy ★★★★★
()
Ответ на: комментарий от dataman

Так где оно используется-то? Для хэшей в проектах с длинной "историей" коммитов оно практически бесполезно.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

https://github.blog/open-source/git/highlights-from-git-2-48/#faster-sha-1s-without-compromising-security

In most cases, the performance impact is negligible, and the benefit outweighs the minor performance cost. But when computing the checksum of a large pack (like when cloning a large repository), the cost adds up. For instance, we used Callgrind and measured that Git spends around 78% of its CPU computing a checksum during a simulated clone of torvalds/linux.

dataman ★★★★★
() автор топика

Добавлен новый API для пакетного посещения объектов на основе общего пути или по типу.

Как будто автоперевод лажанул. o_0

Radjah ★★★★★
()

Все файлы документации .txt переименованы в .adoc.

Давно пора.

thesis ★★★★★
()
Ответ на: комментарий от Radjah

Добавлен новый API для пакетного посещения объектов на основе общего пути или по типу.

Introduce a new API to visit objects in batches based on a common path, or by type.

Правки приветствуются.

dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

В словаре нашёл значение «осматривать» у «to visit».

Что-то типа «для пакетного просмотра объектов на основе общего пути или типа» или «пакетной обработки». ¯\_(ツ)_/¯

Radjah ★★★★★
()
Ответ на: комментарий от mord0d

В наше время sha1 практически бесполезно, а они её добавили. Как это аргументируется разработчиками? Как это предполагается использовать на практике?

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

А про sha1 у них в блоге довольно подробно описано зачем это нужно.

Loki13 ★★★★★
()
Последнее исправление: Loki13 (всего исправлений: 1)
Ответ на: комментарий от Radjah

Исправил на «… для группового обхода объектов …».

dataman ★★★★★
() автор топика

В команду git clone добавлена подддержка создания неглубокого клонирования для одного коммита, который не обязательно должен находиться на вершине ветви.

Выглядит наиболее полезной фичей. Остальное более-менее семечки.

Добавлены биндинги к библиотеке libgit для языка Rust.

Нинужно! :) (с)

gns ★★★★★
()
Ответ на: комментарий от skiminok1986

Ничего полезного пока на русте не написали. Растаманы в основном скоростью меряются с zlib-ом, и то нечестно :)

gns ★★★★★
()
Ответ на: комментарий от sabacs

Так уже ж есть pijul. Он на rust’е, он patch based, в отличие от commit based git’а и hg.

Camel ★★★★★
()
Ответ на: комментарий от gns

И не допишут, если уж и libgit2 не успевает за 100500 фичами git.

dataman ★★★★★
() автор топика
Ответ на: комментарий от mord0d

Так где оно используется-то? Для хэшей в проектах с длинной «историей» коммитов оно практически бесполезно.

Почему бесполезно?

firkax ★★★★★
()
Ответ на: комментарий от gns

Ничего полезного пока на русте не написали.

Rustdesk, если сходу. И полезен, и аналоговнетен одновременно.

thesis ★★★★★
()
Ответ на: комментарий от thesis

Первый раз слышу, первый раз вижу. А оно надо? На той стороне все равно TeamViewer или AnyDesk будет. А, скорее всего, RDP или VNC.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Ответ на: комментарий от gns

Ничего полезного пока на русте не написали.

Не соглашусь. Какие есть аналоги hyperfine или pastel на других языках? Автор один и тот же, кстати.
Это так, что сразу вспомнилось.

dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

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

gns ★★★★★
()
Ответ на: комментарий от gns

бенчмарков чуть более чем достаточно и так уже наваяли

Например? Какие есть на C/C++ с функциональностью hyperfine?

dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

Как минимум, команда time. И ее обычно хватает. Для тяжелых случаев perf, valgrind и LTTng. Ну и tracefs никто не отменял. Сравнивать производительность в зависимости от количества запусков интересно для языков «с прогревом» типа дотнета. А вот узкие места искать надо просто анализируя сколько раз выполнился особо тяжелый цикл. А это только волгриндом или перфом.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 3)
Ответ на: комментарий от Loki13

а люди(я в частности) мучаются и сидят на старых версиях

Зачем тогда вообще обновляться, если есть налаженные процессы?

X-Pilot ★★★★★
()
Ответ на: комментарий от dataman

Веришь, вот вообще не интересно! Ядро читаю ежедневно и пишу через день, кода на расте вообще еще не видел.

gns ★★★★★
()
Ответ на: комментарий от Loki13

Вот мне буквально сейчас надо тупо хэшировать пути к файлам, Даже 20 байт SHA1 мне много, MD5 хватает. Даже, думаю, siphash хватило бы для моей задачи.

gns ★★★★★
()
Ответ на: комментарий от dataman

Можешь не верить. Как-то раз заглянул туда, увидел переписанные аллокаторы памяти сплошь unsafe и как-то потерял интерес к этой теме, Ядро собирал, ЕМНИП даже компилятор раста не попросили при сборке.

gns ★★★★★
()
Ответ на: комментарий от gns

Даже, думаю, siphash хватило бы для моей задачи.

Тогда уж XXH3-128, его трудно кому-нибудь догнать по скорости.

dataman ★★★★★
() автор топика
Ответ на: комментарий от gns

Ввиду победоносного шествия вяленда по галактике - остро необходимо. Тимвуер меня давным-давно забодал внезапным обвинением в коммерческом использовании и требованием бабла, анидеск с вяленым не живет в принципе, рдп еще поди настрой и высунь через нат, а внц - ну что внц. Ни звука, ни файлик переслать.

thesis ★★★★★
()
Ответ на: комментарий от gns

Искаропки-то его, поди, нет нигде.

$ apt info libxxhash-dev

Package: libxxhash-dev
Version: 0.8.3-2
Priority: optional
Section: libdevel
Source: xxhash
Maintainer: Josue Ortega <josue@debian.org>
Installed-Size: 346 kB
Depends: libxxhash0 (= 0.8.3-2)
Homepage: https://cyan4973.github.io/xxHash
Tag: devel::library, role::devel-lib
Download-Size: 81.0 kB
APT-Manual-Installed: yes
APT-Sources: https://pkgmaster.devuan.org/merged ceres/main amd64 Packages
Description: header files and a static library for libxxhash
 xxHash is an Extremely fast Hash algorithm, running at RAM speed limits.
 It successfully completes the SMHasher test suite which evaluates collision,
 dispersion and randomness qualities of hash functions. Code is highly portable,
 and hashes are identical on all platforms (little / big endian).
 .
 This package contains xxHash static library and header files.

Есть и в Alpine, Arch, Void…


Если скорость не очень важна, то есть https://github.com/avaneev/prvhash от Алексея Ванеева.
Можно задать любую битность хеша.

dataman ★★★★★
() автор топика
Последнее исправление: dataman (всего исправлений: 1)
Ответ на: комментарий от thesis

Так винда же в основном. Ну если остро необходимо, то и в добрый путь. Мне не попадалось.

gns ★★★★★
()
Ответ на: комментарий от dataman

Ты не понял. Я не хочу еще одной зависимости. Есть ограничение на сторонние библиотеки. Опять же, в ядре этого в crypto-api нет. Затащить можно, конечно. Но это ж тащить надо.

gns ★★★★★
()
Ответ на: комментарий от gns

Ты не понял.

Какое ТЗ, такое и понимание коробки. :)

dataman ★★★★★
() автор топика
Ответ на: комментарий от X-Pilot

Зачем тогда вообще обновляться, если есть налаженные процессы?

Ну вот я подключаюсь на удалёнку к рабочему компу, мне что не обновлять свой десктоп никогда? Я просто заморозил пару пакетов из которых DH2 выпилили, т.к. он у нас в конторе настроен без вариантов.

Loki13 ★★★★★
()
Ответ на: комментарий от gns

Ничего полезного пока на русте не написали

Пишут же. Слышно, как пёрья скрипят по пергаменту...

Somebody ★★★
()
Ответ на: комментарий от Somebody

Не без этого :) Но и работа такая.

gns ★★★★★
()

Как нам новости монополии СПО? Все альтернативные системы убиты, теперь жрëм, что дают, и радуемся?

Vudod ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.