[devel] Gear и внешние VCS.
Anton Farygin
rider на altlinux.com
Чт Июн 19 16:10:14 MSK 2014
On 19.06.2014 15:55, Igor Vlasenko wrote:
> 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.
Умный робот мог бы посмотреть, если ли remotes на апстрим, описанный в
watch файле и если есть - сделать fetch им, а не в отдельную служебную
ветку.
>
> Если майнтайнер B тоже не хочет, чтобы у него создавался
> gearobersturmbannbranch, а использовались его собственные,
> отличные от майнтайнера A названия ветвей,
> он может добавить файл .gear/upstream/remotes.$USER,
> который будет иметь приоритет перед .gear/upstream/remotes.
> А еще можно export GEAR_UPSTREAM_REMOTES_SUFFIX=..smth..,
> и перекрыть все с помощью
> .gear/upstream/remotes.$GEAR_UPSTREAM_REMOTES_SUFFIX
> если вдруг понадобится.
а что делать, если мейнтейнер не хочет записывать что-то в
.gear/upstream (и тем более публиковать это) ?
>
> Конечно, в gear/rules архив может создаваться не по тегу,
> а по ветви: tar:upstream: .
> но тогда от создания у себя ветви upstream никуда не деться,
> против лома нет приема, она железобетонно прописана в gear/rules,
> разве что форкать свои .gear/rules.
>
> Так хорошо?
Нет, плохо.
Мне хотелось бы понять, чем не устраивает вариант с созданием веток под
"настройки мейнтейнера" а не в соответствии с .gear/upstream/remotes ?
Зачем плодить лишние сущности ?
сделайте в домашнем каталоге .uupdate-branches и в нём пропишите все
необходимые ветки.
ну и дефолт в виде upstream upstream
Подробная информация о списке рассылки Devel