The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

28.06.2022 09:12

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

По сравнению с прошлым выпуском в новую версию принято 395 изменений, подготовленные при участии 75 разработчиками, из которых 20 впервые приняли участие в разработке. Основные новшества:

  • Доведён до готовности к повсеместному использованию механизм частичных индексов (sparse index), охватывающих лишь часть репозитория. Частичные индексы позволяют повысить производительность и сэкономить место в репозиториях, в которых выполняются операции частичного клонирования (sparse-checkout) или осуществляется работа с неполной копией репозитория. В новом выпуске завершена работа по интеграции частичных индексов в команды "git show", "git sparse-checkout" и "git stash". Наиболее заметный выигрыш в производительности от использования частичных индексов наблюдается в команде "git stash", скорость выполнения которой в некоторых ситуациях возросла на 80%.
  • Реализован новый механизм "cruft packs" для упаковки недостижимых объектов (unreachable), на которые в репозитории отсутствуют ссылки (не ссылаются ветки или теги). Недостижимые объекты удаляются сборщиком мусора, но до удаления определённое время остаются в репозитории для исключения состояний гонки. Для отслеживания периода нахождения недостижимых объектов необходима привязка к ним меток с временем изменения подобных объектов, что не позволяет хранить их в одном pack-файле, в котором все объекты имеют общее время изменения. Ранее применяемое сохранение каждого объекта в отдельном файле приводило к проблемам при наличии большого числа свежих недостижимых объектов, ещё не подпадающих под удаление. Предложенный механизм "cruft packs" позволяет хранить все недостижимые объекты в одном pack-файле, а данные о времени модификации каждого объекта отражать в отдельной таблице, хранимой в файле с расширением ".mtimes".
  • Для Windows и macOS реализован встроенный механизм отслеживания изменений в файловой системе, позволяющий обойтись без перебора всего рабочего каталога при выполнении таких операций, как "git status". Ранее для отслеживания изменений через hook-и могли подключаться внешние утилиты отслеживания изменений в ФС, такие как Watchman, но это требовало установки дополнительных программ и настройки. Теперь указанная функциональность встроена и может быть включена командой "git config core.fsmonitor true".
  • В команде "git sparse-checkout" объявлена устаревшей поддержка альтернативного режиму "--cone" метода определения шаблонов для частичного клонирования, позволяющего при определении подпадающей под операцию клонирования части репозитория перечислять отдельные файлы с использованием синтаксиса ".gitignore", что не позволяет использовать для оптимизации частичные индексы.
  • Повышена гибкость настройки вызова fsync() для сброса изменений на диск. В параметр "core.fsyncMethod" добавлена поддержка стратегии синхронизации "batch", позволяющей ускорить работу при записи большого числа отдельных файлов за счёт накопления изменений в кэше обратной записи, сбрасываемом одним вызовом fsync(). Проведённый тест, в результате которого в командой "git add" было добавлено 500 файлов, при включении нового режима был выполнен за 0.15 секунд, в то время как при вызове fsync() для каждого файла потребовалось 1.88 секунд, а без использования fsync - 0.06 секунд.
  • В команды обхода веток, подобные "git log" и "git rev-list", добавлена опция " --since-as-filter=X", позволяющая отсеять информацию о коммитах, время создания которых старше "X". В отличие от опции "--since" новая команда реализована в виде фильтра, не останавливающего перебор после первого коммита, старше заданного времени.
  • В команде "git remote" при указании флага "-v" обеспечен вывод информации о частичных клонах репозитория.
  • Добавлена настройка "transfer.credentialsInUrl", которая может принимать значения "warn", "die" и "allow". В случает указания в параметре "remote.<name>.url" учётных данных открытым текстом попытка выполнения операций "fetch" или "push" будет завершена ошибкой, если настройка "transfer.credentialsInUrl" принимает значение "die", или предупреждением, если установлено значение "warn".
  • По умолчанию задействована новая реализация интерактивного режима команды "git add -i", переписанная с Perl на Си.


  1. Главная ссылка к новости (https://lore.kernel.org/git/xm...)
  2. OpenNews: Выпуск системы управления исходными текстами Git 2.36
  3. OpenNews: Две уязвимости в Git
  4. OpenNews: Выпуск системы управления исходными текстами Git 2.35
  5. OpenNews: Критическая уязвимость в Git LFS, проявляющаяся на платформе Windows
  6. OpenNews: Обновление Git с устранением уязвимости, допускающей удалённое выполнение кода
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/57416-git
Ключевые слова: git
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (69) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:03, 28/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    хорошая, годная система. Как и всё, что изобрел Торвальдс.
     
     
  • 2.3, Аноним (3), 10:07, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +9 +/
    ага, раздувается и раздувается, как и всё, что изобрел Торвальдс
     
     
  • 3.7, КО (?), 10:42, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Уж лучше чем помереть где-то тихо в уголке.
     
     
  • 4.24, Аноним (3), 13:06, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    уж лучше сохранять качество кода и не побираться по корпоратам кто что законтрибутит

    а для таких прогрессоров вроде тебя я отмечу, что если каждые полгода не выкатывают новые "супер" фичи то это не значит что проект умирает/стагнирует, на самом деле для его актуальности достаточно просто мелких патчей, которыми он реагирует на какие-либо изменения, например, сторонних библиотек

     
     
  • 5.28, Аноним (1), 13:49, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > уж лучше сохранять качество кода

    Укажи, где в гите "некачественный код". И не забудь скинуть ссылку на свой собственный высококачественный код. Я это перешлю Линусу. Скажу, что вот так надо было писать.

     
     
  • 6.46, Аноним (46), 17:09, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Правка: Скажу, что вот так надо было писать на Rust.
     
     
  • 7.58, microsoft (?), 21:06, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хватит издеваться над верующими.
     
  • 3.15, Аноним (15), 11:13, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Удваиваю
     
     
  • 4.39, Аноним (39), 14:53, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Удваиваю

    Раздуваю

     
  • 3.29, BrainFucker (ok), 13:52, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Когда Поттеринг встроит свой аналог гита в systemd и начнут его агрессивно форсировать, по другому запоёте ))
     
     
  • 4.45, anonymous (??), 16:34, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    гы, сына, лол
     
  • 4.59, microsoft (?), 21:06, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Буду только рад, и ядро встройте.
     
  • 2.6, Аноним (6), 10:12, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну кстати действительно, лучшего я ничего не нашёл. Черрипикать изменения из разветвлённой истории довольно уныло конечно, но можно ли сделать лучше?
     
     
  • 3.9, Аноним (-), 10:48, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Да, можно и это Mercurial.
     
     
  • 4.13, Аноним (6), 10:54, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так он вроде тормозной и не эффективный. И, из того что я видел, не удобный. Хотя так и не разобрался с ним, с гитом всё на раз.
     
     
  • 5.32, Аноним (-), 14:20, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ты просто не осилил.
     
     
  • 6.44, Аноним (-), 16:22, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Сами этот кусок наколенной питонятины осиливайте. Он уже вылетел с практически всех хостингов где был, потому что такой VCS мало кому сдался.
     
  • 5.49, Аристарх (??), 19:21, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Звездун! Как раз гит - самое неинтуитивное г****но, которое можно было написать.
     
     
  • 6.60, microsoft (?), 21:08, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Но ты то уже начал всех пересаживать на альтернативу? Кстате, где она?
     
     
  • 7.62, Аноним (62), 00:09, 29/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    astral://aristarx.melmak/
     
  • 4.23, Аноним (23), 13:04, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сравнить черри-пик с Меркуриалом - это конечно сильно. Получается, уровень Меркуриала - это уровень одной лишь фичи Гита. Да и черри-пика в Меркуриале нормального нет. И не надо заливать про MQ. Пробовал я этот MQ. Гамно.
     
     
  • 5.33, Аноним (-), 14:21, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >И не надо заливать про MQ. Пробовал я этот MQ. Гамно.

    Наоборот. Говно не осилило Меркуриал.

     
     
  • 6.71, Аноним (23), 01:09, 30/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не. Я то осилил. И мне не понравилось, по сравнению с git rebase -i и cherry-pick. А ты только и можешь бессильно обижаться и отвечать "сам дурак". Потому что выбрал плохой инструмент и делаешь вид, что он хороший.
     
  • 3.11, Аноним (11), 10:51, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Дело то не в функционале, а в реализации. Функционал весь стырен из BitKeeper  
     
     
  • 4.14, Аноним (6), 11:05, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А что не так с реализацией? Лучше то ничего нет всё равно. Про функциональность не знаю, всяко не сильно хуже перфорса (его я тоже только на картинках видел, но много наслышан).
     
     
  • 5.17, Аноним (17), 11:30, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    То что она бесплатная и ГНУшная в отличии от биткипера? Фоссиль еще посмотри те же яйца еще и в профиль.  
     
  • 4.35, Аноним (35), 14:45, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Там есть subtree и subrepo?
     
  • 3.27, Аноним (23), 13:22, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну кстати действительно, лучшего я ничего не нашёл. Черрипикать изменения из разветвлённой истории довольно уныло конечно, но можно ли сделать лучше?

    Если из разных веток рандомные коммиты - то нельзя. Если несколько коммитов из одной ветки - "rebase -i" же. Интерактивный rebase - по сути wrapper вокруг cherry-pick.

     
     
  • 4.37, Аноним (35), 14:47, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Плюс возможность полного отката операции без запоминания списка вишинок.
     
  • 2.16, myhand (ok), 11:30, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Пингвин жирный робко прячет...
     
     
  • 3.18, Аноним (17), 11:31, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пингвин вин
     
  • 2.47, Аноним (47), 18:43, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > хорошая, годная система. Как и всё, что изобрел Торвальдс.

    Так оно. Но и к сожалению как обычно к юзеру повёрнуто задом.

     
  • 2.54, Ан (??), 20:31, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Но и Фоссил с Ртутью не хуже. Монополия это зло.
     
  • 2.69, Zenitur (ok), 08:53, 29/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > изобрел Торвальдс

    И тут BitKeeper такой: "ну да, ну да, пошёл я нафиг"

     

  • 1.4, Жироватт (ok), 10:08, 28/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Форкнул в master, жду пуллов из slave.

     
     
  • 2.8, QwertyReg (ok), 10:45, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    В dungeon master-то хотя б?
     
     
  • 3.30, Аноним (30), 13:52, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    git remote add dungeon ssh://...
    git push dungeon master
     
  • 2.10, Аноним (-), 10:50, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Маса Жироват доволен.
     
  • 2.12, Аноним (11), 10:52, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Стегай там своих слейвов, а то работать не хотят, только смузи пьют.  
     

  • 1.19, Аноним (19), 11:43, 28/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Я для себя открыл fossil-scm несколько лет назад. Теперь все домашние поделки на нём.
     
     
  • 2.21, Аноним (21), 12:21, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    pijul не пробовали? выглядит обещающе, интересны практические отзывы
     
     
  • 3.25, Аноним (19), 13:10, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Тот же git, только в профиль. Fossil зашёл именно подходом всё в одном. Это очень удобно оказалось. Особенно что клонируя репозиторий, получаешь трекер задач, форум и документацию. Можно оффлайн закрывать задачи и потом закинуть на сервер.
     
     
  • 4.34, Аноним (34), 14:40, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    С кем ты там на форуме общаешься про свои «домашнте поделки»? С голосами в своей голове?
     
     
  • 5.38, Аноним (19), 14:47, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну форум это частный случай. Пока он отключен у меня. А вот задачи и вики регулярно использую.
     
  • 5.48, Непростое кино (?), 18:44, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Мля, ты такой антишизофреничный, что люди никогда не разберутся, а хрен ли в этой шизофрении искать.
     
  • 3.40, Аноним (39), 15:01, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > pijul не пробовали?

    Попробуй запихнуть миллион строк кода с историей изменений 100 миллионов строк.

     
  • 3.76, Илья (??), 20:04, 05/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Когда пару лет назад пробовал pijul, то он был очень сырой и даже мержи были хуже, чем ожидал от него. Тоже остановился на fossil, он явно по моей душе.
     
  • 2.31, Аноним (30), 13:54, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Какой должен быть уровень домашних поделок, чтобы не хватало гита? Для одиночной разработки достаточно одной ветки с коммитами в линию, ну может быть еще 1-2 для каких-нибудь сильно экспериментальных фич.
     
     
  • 3.42, Аноним (42), 15:44, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Какой должен быть уровень домашних поделок, чтобы не хватало гита?

    Наоборот же, таким деятелям git слишком сложно или просто "не так". Я думаю это глубоко закомплексованные люди, которым с одной стороны, нужно быть не такими как все, с другой, свой код они никому показывать не хотят, ну вот и выбирают всякую маргинальщину.

     
  • 3.55, Ан (??), 20:34, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Наоборот, зачем для домашних поделок вообще DVCS, а не СVCS?
     
  • 3.75, Ф1 (?), 13:24, 02/07/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для домашних поделок (или для небольших коллективов) ничего лучше hg с gui TortoiseHg нету.
     

  • 1.26, Аноним (26), 13:16, 28/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как всегда, никаких SHA256. На Blake3 так же долго переходить будем.
     
  • 1.36, Аноним (36), 14:46, 28/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А я до сих пор пользуюсь SubVersion и с подделками Линуса не связываюсь!
     
     
  • 2.56, Ан (??), 20:35, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    SVN вполне норм, если ты не хипстер. OpenBSD до сих пор на CVS сидит и им вполне норм.
     
     
  • 3.63, Аноним (62), 00:14, 29/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Как-то странно называть хипстерским то, что появилось в далёком 2005 г.
     
     
  • 4.70, Аноним (70), 13:41, 29/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Java вообще в 1995 году появилась, но кто скажет что она не хипстерская и смузихлебная?
     

  • 1.41, Аноним (41), 15:09, 28/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Почему в git до сих пор не встроены issues?
     
     
  • 2.43, Annno (?), 16:00, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А почему ты не писаешь через попу?
     
  • 2.52, Аноним (52), 19:40, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Может быть, потрму что это SCM? ;)
     
     
  • 3.66, Аноним (-), 01:51, 29/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    То есть зависеть от проприетарного гитхаба лучше, чем принимать ишью прямо в репозиторий?
     
     
  • 4.74, Аноним (74), 14:45, 30/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда для кого Gitea, Codeberg и прочие FOSS-платформы?
     
  • 2.64, Аноним (62), 00:31, 29/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    И почему в нём до сих пор нет интеграции с Twitter?
     
  • 2.67, Аноним (67), 02:42, 29/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    С чего ты взял, что не встроены? git checkout --orphan issue1
     

  • 1.51, Аристарх (??), 19:28, 28/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Сотни, просто сотни коммитов, а использовать это УГ легче не стало. Вот и всё, что нужно знать о git.
     
     
  • 2.53, Anonim (??), 19:51, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Для скачивания кода с кодопомоек вполне сойдет. А так да, если не заставляют, лучше не пользоваться.
     
  • 2.57, Ан (??), 20:37, 28/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Тут уже левачьё беснуется и пытается кэнселлить тех, кто не пользуется гитом: https://www.theregister.com/2022/06/27/7zip_compression_tool/
     
     
  • 3.68, Аноним (67), 02:47, 29/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >code isn't on "Github, Gitlab, nor any public code hosting".

    Не левачьё, а рачьё. https://github.com/mcmilk/7-Zip-zstd - это, конечно, не оригинал, зато намного лучше.

     

  • 1.61, name (??), 23:36, 28/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    После знакомства с git я начал ненавидеть профессию программиста. Хотя раньше было норм.
     
     
  • 2.73, ДаНуНафиг (?), 05:23, 30/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Самое время уйти из профессии, пока еще с чем-нибудь не познакомился.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру