[newbies] git clone --recursive

Ivan Zakharyaschev imz на altlinux.org
Пн Ноя 13 18:23:32 MSK 2017


Hello!

On Mon, 13 Nov 2017, Stas wrote:

> Хочу сделать пакет fuse-marcfs
>
> В апстримовой инструкции по сборке указано скачать исходники так:
>
> git clone --recursive https://gitlab.com/Kanedias/MARC-FS.git
>
> Как в таких случаях правильно делать репозитарий gear? Пытался

Известная проблема: https://bugzilla.altlinux.org/show_bug.cgi?id=17914

но можно справиться обычными средствами gear "вручную", если только 
submoduleй не сотни.

> склонировать апстрим - облом. Пытался создать пустой репозитарий и
> смержить с апстримом - облом.
>
> Конкретно в этом случае рекурсивно качаются исходники libcurlcpp и
> googletest:
>
> $ cat MARC-FS/.gitmodules
> [submodule "curlcpp"]
>        path = contrib/curlcpp
>    url = https://github.com/JosephP91/curlcpp.git
>    ignore = dirty
> [submodule "contrib/googletest"]
>        path = contrib/googletest
>        url = https://github.com/google/googletest

Если это независмые полезные штуки, можно собрать отдельные пакеты и 
использовать их в BuildRequires.

Если взаимодействие более тесное, чем может быть между пакетами (как с 
библиотекой или вызываемая команда), то можно в .gear/rules написать 
правило tar: PROJECT1_TAG1:. name=...

и, конечно, сделать что-нибудь вроде git merge -s ours PROJECT1_TAG1 перед 
созданием сборочного коммита.

Как получить PROJECT1_TAG1? Ну по сути как-то так:

git fetch PROJECT1_URL refs/tags/TAG1:refs/tags/PROJECT1_TAG1

Имеется в виду, что и другие refs можно сфетчить. (Ветки, тэги.)

-- 
Best regards,
Ivan


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