Как показали эксперементы -- держать разные компаненты пакета в разных бранчах достаточно осмысленно: как миниум, упроститься процесс написания и применения шаблонов спеков. Пример применения подобного подхода: 1. <git.alt:/people/solo/packages/cks.git> 2. <git.alt:/people/solo/packages/specs.git>
Created attachment 1692 [details] gear-1.1.0-alt-comp-branchs.patch Патч добавляет к gear-srpmimport параметр --comp-branchs. При его применении: 1) все source*, patch* и .gear-rules выложены в отдельные бранчи вида <branch>-<имя компанента>. <branch> (заданный через --branch) будет их merge; 2) для всех удачных соммитов (если были изменения) в <branch>-<имя> будут поставлены теги вида <версия>-<имя компанента>; 3) для спека в качестве имени компанента используется "spec", для .gear-rules -- "gear-rules" PS: Патчу соответствует бранч solo/comp-branchs в <git.alt:/people/solo/packages/gear.git>
Патч доработан и портирован на gear-1.4.0-alt1. В чистом виде, он содержится в бранче solo/comp-branches (см. http://git.altlinux.org/people/solo/packages/?p=gear.git;a=shortlog;h=solo/comp-branches). Пакет gear-1.4.0-alt1.1.src.rpm, его содержащий (бранч solo/srpms/comp-branches, см. http://git.altlinux.org/people/solo/packages/?p=gear.git;a=shortlog;h=solo/srpms/comp-branches) -- отправлен в incoming/Daedalus.
К сожалению, новая возможность недостаточно хороша: Хотя %SOURCE кладётся в одельную ветку, но файлы распологаются в отдельной папке (%name). Это неудобно для прямого импорта из upstream: обычно дерево разворачивается прямо как есть в рабочий каталог. Чтобы понять, о чём идёт речь, гляньте сюда: http://git.altlinux.org/people/ildar/packages/?p=balsa.git;a=commit;h=656c2f92cd7127b2d7d1fb1611ca8ec9cab0e1fc
(In reply to comment #3) > К сожалению, новая возможность недостаточно хороша: Хотя %SOURCE кладётся в > одельную ветку, но файлы распологаются в отдельной папке (%name). Это неудобно > для прямого импорта из upstream: обычно дерево разворачивается прямо как есть > в рабочий каталог. Правильно понимаю, что вы предлагаете не создавать подкаталог для архива в бранче, куда распакован архив с исходниками? Тогда при мерже в srpm ветку будет происходить перемещение файлов в подкаталоги соответствующие архивам. А это ещё не удобнее (слишком много незначащего мусора на каждый импортированный пакет). Хранить же в srpm ветке содержимое архивов не в подкаталоге нельзя, т. к. уникальность имён файлов в разных архивах и отсутствие пересечений (в том числе со служебными файлами и/или спеком) никто не гарантирует. > > Чтобы понять, о чём идёт речь, гляньте сюда: > http://git.altlinux.org/people/ildar/packages/?p=balsa.git;a=commit;h=656c2f92cd7127b2d7d1fb1611ca8ec9cab0e1fc Данная структура репозитария может использоваться человеком, но не генерироваться автоматом, т. к. не защищена от конфликта по именам файлов (+ непонятно что делать, если %SOURCE не один).
Я обновил патч. Теперь он базируется на 1.5.3-alt1 (см. http://git.altlinux.org/people/solo/packages/?p=gear.git;a=tag;h=refs/tags/1.5.3-alt1.1) PS: Краткое описание схемы (с обоснованием) см. http://solo-oboroten.livejournal.com/89783.html