[devel] Gear и внешние VCS.

Igor Vlasenko vlasenko на imath.kiev.ua
Чт Июн 19 15:55:41 MSK 2014


On Thu, Jun 19, 2014 at 03:10:55PM +0400, Anton Farygin wrote:
> On 19.06.2014 15:08, Igor Vlasenko wrote:
> >Соответственно, когда такие утилиты будут готовы,
> >надо будет просить всех майнтайнеров, использующих
> >VCS - обновляемые gear репозитории, создать и опубликовать
> >в этих репозиториях .gear/upstream/remotes,
> >а если есть желание ограничить доступ к своему репозиторию,
> >то делать это с помощью acl, а не сокрытием его служебной
> >информации.
> 
> я в соседнем письме написал, почему нет смысла использовать для
> этого .gear/upstream/remotes
> т.е. - я не хотел бы использовать инструмент, который будет мне
> предоставлять алгоритм работы другого ментейнра.
> например, мне привычнее upstream remote держать в бранче не
> upstream, а source.
> 
> Как тут быть ?

Легко :)

2 файла .gear/upstream/tag-filter и
.gear/upstream/remotes - это формат,
в котором будет храниться служебная информация,
которая будет необходима для watch по tag.

При этом .gear/upstream/remotes имеет более
глубокий смысл - 

* он позволяет сделать информацию о remotes публичной, 
* может использоваться независимо от того, нужен ли watch по tag, 
* крайне нужен NMUшникам.

Но из этого совершенно не следует, что если пакет foo
одновременно сопровождает 2 майнтайнера A и B, то
если один из них создал .gear/upstream/remotes,
(например, А), то второй (В) 
отгребет из этого файла не нужные ему ветви.

Ведь никто не заставляет выполнять у себя 
gear-restore-remotes, и робот тоже не будет этого
делать. Я в позапрошлом письме рассматривал алгоритм
обновления. Если в gear/rules тег, как в 
tar:v на version@: .
то там достаточно использовать временную служебную ветвь,
какой-нибудь gearobersturmbannbranch.
Однако, служебная ветвь -- это мусор в репозитории,
поэтому умный робот проверит, есть ли в .git/config
ветви, описанные в .gear/upstream/remotes,
если есть, будет использовать их, чтобы не мусорить,
если же нет, создаст свой gearobersturmbannbranch.

Если майнтайнер B тоже не хочет, чтобы у него создавался
gearobersturmbannbranch, а использовались его собственные,
отличные от майнтайнера A названия ветвей, 
он может добавить файл .gear/upstream/remotes.$USER, 
который будет иметь приоритет перед .gear/upstream/remotes.
А еще можно export GEAR_UPSTREAM_REMOTES_SUFFIX=..smth..,
и перекрыть все с помощью
.gear/upstream/remotes.$GEAR_UPSTREAM_REMOTES_SUFFIX
если вдруг понадобится.

Конечно, в gear/rules архив может создаваться не по тегу,
а по ветви: tar:upstream: .
но тогда от создания у себя ветви upstream никуда не деться,
против лома нет приема, она железобетонно прописана в gear/rules, 
разве что форкать свои .gear/rules.

Так хорошо?


-- 

I V


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