[devel] gear-store-submodules

Dmitry V. Levin ldv на altlinux.org
Ср Янв 12 19:59:07 MSK 2022


On Wed, Jan 12, 2022 at 03:20:51PM +0300, Dmitry V. Levin wrote:
> On Wed, Jan 12, 2022 at 03:39:20AM +0300, Dmitry V. Levin wrote:
> > On Wed, Jan 12, 2022 at 03:26:55AM +0300, Vitaly Chikunov wrote:
> > > On Tue, Jan 11, 2022 at 12:10:52PM +0300, Sergey V Turchin wrote:
> > > > On Tuesday, 11 January 2022 11:55:20 MSK Paul Wolneykien wrote:
> > > > 
> > > > [...]
> > > > > Возможно, это повод для FR к gear: чтобы он поддерживал в rules ссылки на
> > > > > внешние репозитории или подмодули.
> > > > Возможно, с появлением gear все этого уже ждут. ;-)
> > > > https://bugs.altlinux.org/17914
> > > 
> > > Возможны разные попытки решения этой проблемы.
> > > Вот Proof of Concept code
> > >   gitery:/people/vt/private/gear-submodule-update.git
> > > который делает фиктивный merge всем submodules и меняет rules и spec
> > > так чтоб они разтаривались при сборке.
> > > 
> > > Это решение чисто экспериментальное (as in no warranty), но, возможно,
> > > оно вдохновит кого-то на более правильное решение.
> > 
> > Есть ещё
> > https://git.altlinux.org/people/ldv/packages/?p=gear.git;a=shortlog;h=refs/heads/legion/patchset/submodule-support/v5
> > но я его не смог дочитать.
> 
> Вроде бы дочитал, отредактировал, запушил в
> https://git.altlinux.org/people/ldv/packages/?p=gear.git;a=shortlog;h=submodules
> но всё равно у меня нет полной уверенности, что предпоследний коммит,
> который обрабатывает .gear/submodules/list в gear, делает это совершенно
> безопасно.

Этот подход работает, но он подойдёт не всем.

Постановка задачи была, насколько я помню, примерно следующая:
- в некотором проекте используются submodules для сравнительно небольших
  внешних подпроектов;
- требуется собирать пакеты из этого проекта в Сизиф;
- требуется не засорять историю этого проекта историями внешних подпроектов;
- пользоваться этим должно быть не сложнее, чем gear-store-tags;
- за всё это удобство можно заплатить увеличением размера git-репозитория
  проекта.

В общих чертах реализация построена та том, что
- есть новый инструмент gear-store-submodules, похожий на gear-store-tags,
  который превращает submodules в бандлы с помощью git-bundle(1),
  а эти бандлы, в свою очередь, добавляются в репозиторий как обычные файлы;
- gear умеет автоматически конвертировать такие бандлы в архивы
  и добавлять такие архивы к основным архивам.


-- 
ldv


Подробная информация о списке рассылки Devel