Bug 10328

Summary: [FR] Поддержка отдельных бранчей для компонентов пакетов в gear-srpmimport
Product: Sisyphus Reporter: solo <solo>
Component: gearAssignee: Dmitry V. Levin <ldv>
Status: NEW --- QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P2 CC: glebfm, kirill, ldv, legion, placeholder
Version: unstableKeywords: patch
Hardware: all   
OS: Linux   
URL: http://lists.altlinux.org/pipermail/devel/2006-November/038836.html
Attachments:
Description Flags
gear-1.1.0-alt-comp-branchs.patch none

Description solo 2006-11-27 02:35:54 MSK
Как показали эксперементы -- держать разные компаненты пакета в разных бранчах
достаточно осмысленно: как миниум, упроститься процесс написания и применения
шаблонов спеков.

Пример применения подобного подхода:

1. <git.alt:/people/solo/packages/cks.git>

2. <git.alt:/people/solo/packages/specs.git>
Comment 1 solo 2006-11-27 02:49:15 MSK
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>
Comment 2 solo 2008-04-24 18:41:47 MSD
Патч доработан и портирован на 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.
Comment 3 ildar 2008-06-06 14:33:31 MSD
К сожалению, новая возможность недостаточно хороша: Хотя %SOURCE кладётся в
одельную ветку, но файлы распологаются в отдельной папке (%name). Это неудобно
для прямого импорта из upstream: обычно дерево разворачивается прямо как есть в
рабочий каталог.

Чтобы понять, о чём идёт речь, гляньте сюда:
http://git.altlinux.org/people/ildar/packages/?p=balsa.git;a=commit;h=656c2f92cd7127b2d7d1fb1611ca8ec9cab0e1fc
Comment 4 solo 2008-06-06 15:34:28 MSD
(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 не один).


Comment 5 solo 2009-09-28 18:22:14 MSD
Я обновил патч. Теперь он базируется на 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