LINUX.ORG.RU

Git 2.53

 , , ,


0

2

2 февраля представлен выпуск распределенной системы управления исходными текстами Git 2.53.

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

По сравнению с прошлым выпуском в новую версию принято 466 изменений, подготовленных при участии 70 разработчиков (21 впервые приняли участие в разработке Git). Основные новшества:

  • Добавлена возможность применения стратегии упаковки репозиториев geometric (git repack --geometric) к частично клонированным внешним репозиториям, работающим в режиме promisor (недостающие объекты догружаются при необходимости). При переупаковке с опций --geometric pack-файлы с расширением .promisor обрабатываются и упаковываются отдельно. Стратегия geometric позволяет сократить время обслуживания крупных монорепозиториев, за счёт выборочной переупаковки объектов и исключения излишних ресурсоёмких операций, таких как слияние всех pack-файлов (сохраняется геометрическая прогрессия размера pack-файлов, при которой каждый следующий pack-файл должен быть как минимум в два раза больше предыдущего).
  • В команду git fast-import добавлена опция --signed-commits=strip-if-invalid для удаления цифровых подписей из импортируемых объектов, ставших некорректными после перезаписи части истории репозитория. До этого можно было либо импортировать, либо удалить все подписи, без разделения на действительные и потерявшие смысл. Опция strip-if-invalid позволяет реализовать инструменты для сохранения действующих подписей и переподписывания объектов с потерявшими актуальность подписями.
  • В вывод команды git repo structure добавлена информация о размере всех достижимых объектов (reachable) в репозитории с разбивкой по их типам. Информация теперь выводится в читаемом виде с единицами измерения и показывается отдельно для фактического и занимаемого на диске размеров, что позволяет оценить общий размер репозитория на диске:
$ git repo structure

   | Repository structure | Value      |
   | -------------------- | ---------- |
   | * References         |            |
   |   * Count            |   1.78 k   |
   |     * Branches       |      5     |
   |     * Tags           |   1.03 k   |
   |     * Remotes        |    749     |
   |     * Others         |      0     |
   |                      |            |
   | * Reachable objects  |            |
   |   * Count            | 421.37 k   |
   |     * Commits        |  88.03 k   |
   |     * Trees          | 169.95 k   |
   |     * Blobs          | 162.40 k   |
   |     * Tags           |    994     |
   |   * Inflated size    |   7.61 GiB |
   |     * Commits        |  60.95 MiB |
   |     * Trees          |   2.44 GiB |
   |     * Blobs          |   5.11 GiB |
   |     * Tags           | 731.73 KiB |
   |   * Disk size        | 301.50 MiB |
   |     * Commits        |  33.57 MiB |
   |     * Trees          |  77.92 MiB |
   |     * Blobs          | 189.44 MiB |
   |     * Tags           | 578.13 KiB |
  • В команду git maintenance добавлена подкоманда is-needed для выполнения операций обслуживания репозитория только при наличии в этом необходимости.
  • В экспериментальной команде git replay по умолчанию реализовано обновление ссылок в транзакции, вместо показа, куда должны указывать ссылки, без обновления.
  • В команду git blame добавлена возможность выбора алгоритма оценки отличий при помощи опции --diff-algorithm=<algo>.
  • В команду git repo info добавлена опция --all.
  • Из Git-for-Windows перенесена поддержка символических ссылок для платформы Windows.

В состав прошлого выпуска было добавлено предупреждение о включении по умолчанию сборки компонентов на языке Rust в Git 2.53. Тем не менее, фактически в версии Git 2.53 лишь добавлены отдельные улучшения поддержки Rust (возможность сборки без GNU sed), но сборка с Rust при использовании Makefile оставлена по умолчанию отключённой (требует выставления флага WITH_RUST), а при использовании Meson автоматически активируется при наличии компилятора rustc. В версии Git 3.0 инструментарий Rust намерены включить в число обязательных сборочных зависимостей.

>>> Подробности на OpenNET

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)

В версии Git 3.0 инструментарий Rust намерены включить в число обязательных сборочных зависимостей.

Пора, пора уже подогреть атмосферу, а то что-то снегу в этом году многовато. Хейтеры, не спим - улучшаем климат! :-Р

zabbal ★★★★☆
()

В версии Git 3.0 инструментарий Rust намерены включить в число обязательных сборочных зависимостей.

Значит, больше людей подключится к улучшению libgit2. :)

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

А в универах сейчас обучают современным cpp, git, CMake, Qt? У нас только пистон был, не пригодился совсем, в АСУТП его оказывается не используют.

Lusine
()

дааа. Раньше былм CVS,SVN. Теперь о них забыли и ГИТ стал править контролем версий.Ну и ладно.GIT всех уставивает.

nicholas_ru
()
Ответ на: комментарий от Lusine

Нет,маловероятно.Университеты построены на фундументальных знаниях.Перечисленные инструменты появились рано и развитие их очень быстрое.Чему собственно учить?

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

Как надо работать. И делать это должен не дедушка с опытом на алголе, а реальный челик из промышленности. А иначе никак, тебя учить гиту никто не станет, все хотят, чтобы ты сразу начал приносить прибыль.

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

Значит, больше людей подключится к улучшению libgit2. :)

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

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

Раньше былм CVS,SVN. Теперь о них забыли и ГИТ стал править контролем версий.

Ещё и Р4 был. Идиотские капризы владельцев которого как раз и привели к появлению git - который его и похоронил в итоге. В каком-то интервью их манагер потом плакался о том как они тогда обосрались. Забавная история :)

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

Ты уверен?

Нет, конечно. Потому :) и добавил.

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

И что мешает? Пусть займутся чем-то полезным на своих кафедрах, если хотят быть конкурентноспособными. Достукались уже, выпускники сейчас не нужны на рынке.

Lusine
()
Ответ на: комментарий от zabbal

Причем тут P4?Речь в новости про гит.Как он появился, благодаря линусу, сразу о других забыли.

nicholas_ru
()
Ответ на: комментарий от Lusine

Проблема в таких «реформаторах» как ты. Достукались до того, что в погоне за актуальными знаниями забывают давать базу.

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

GIT всех уставивает.

GIT стал толстым и более комбайном по CI/CD чем управлению версиями. Мануал по git стремительно опережает объёмами доки языков разработки. Большинство фич и нововведений не требуются в основной массе проектов.

Есть некоторые пределы совершенству. Да, он слишком толстый и неуклюжий.

PS/ Ещё немного и интегрируется в systemd. Как в детской игре где большие амёбы объединяются и поглощают друг-друга ;-)

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

Ну и ладно.GIT всех уставивает.

Нафига тогда пилятся всякие Пихули и Жужи?

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