[devel] Еще одно HOWTO про сборку пакета в git.alt и интеграцию с upstream scm

Aleksey Avdeev =?iso-8859-1?q?solo_=CE=C1_solin=2Espb=2Eru?=
Ср Апр 11 13:45:59 MSD 2007


Eugene Prokopiev пишет:
> Aleksey Avdeev пишет:
>> Eugene Prokopiev пишет:
>>
>>>>>> Мне удобнее держать полученное из старонних источников отдельно, с
>>>>>> мимниумом изменений: продукты полученные от поставщика могут требовать
>>>>>> предварительной обработки (мытья, например) и до её проведения --
>>>>>> незачем их мешать их с остальными инградиентами (на своей кухне я хозяин
>>>>>> -- смешаю как сочту нужным ;-)).
>>>>> Это верно, однако разделение можно понимать по разному ;) Разные бранчи 
>>>>> требуют регулярного слияния, если же просто вынести исходники апстрима в 
>>>>> отдельный каталог, то получим и разделение (пока для меня в принципе 
>>>>> достаточное), и уменьшение количества операций.
>>>>  Деление -- получаем. Но выцепить изменения сделанные в исходниках уже
>>>> сложнее...
>>> Кажется, выше я писал, каким образом я выцепляю изменения:
>>>
>>>
>>>> Патчи, если таковые имеются, можно держать в отдельных файлах, как и 
>>>> раньше. Если эти патчи мои, то делаю я их старым проверенным способом: 
>>>> собираю апстримные исходники и тестирую разультат где-то отдельно 
>>>> (иногда в системе, в которой не жалко сделать make install  ;)  ), 
>>>> изменяемые файлы перед изменением обзываю .orig, после изменений делаю 
>>>> gendiff. Даст ли мне ощутимые преимущества какой-нибудь более правильный 
>>>> способ с отдельным бранчем под каждый патч?
>>> Если вы делаете иначе, пожалуйста, расскажите как (по возможности 
>>> подробно, с командами). Особенно интересуют преимущества по сравнению с 
>>> приведенным выше способом.
>>
>>   Патчи, к которым я приложил руку после перехода на git, в виде файлов
>> я не храню (только унаследываемые). Для из поучения -- использую diff
>> между тегами, благо gear это позволяет. (Пока непозволял -- использовал
>> самописанный велосипед для автоматизированного создания патчей на базе
>> заданных коммитов.)
>>
>>   Поскольку, для работы с данной схемой всё равно нужны фиктивные мержи
>> и gear-upate-tag, у меня нет усложнения техпроцесса при хранении
>> исходников в отдельном банче. Это, в свою очередь, позволяет
>> небеспокоется о имени каталога, куда апстрим пакует исходники (если они
>> распространяются в тарбл, то версия часто присутствует в имени
>> каталога): достаточно соглашения, что всё находящееся в корне бранча с
>> сорцами -- сорцы, полученные из внешнего источника (возможно --
>> правленные, но в данном контексте это не важно).
> 
> Под каждый свой патч вы выделяете отдельный бранч? Из сказанного вами 
> вроде этого не следует, хотя я с трудом представляю себе обратное. Можно 
> все-таки пример?

  Да, под каждый патч -- отдельный бранч. Иногда -- несколько патчей в
одном бранче (это предусматривет ветвление в будующием).

  Пример --
<http://git.altlinux.org/people/solo/packages/?p=apache2.git;a=summary>.
(Внимание: репозитарий поряко 100 Мб.)

> 
> Вот допустим, мне нужно изменить что либо в Makefile.in, я создаю бранч 
> (git-branch dbmail_2_2_makefile_patch dbmail_2_2), что я получаю? Копию 
> предыдущего без тагов? А идентификаторы коммитов будут такие же?

  В момент созия бранча -- теже. Потом -- теже + новые.

> 
> Теперь мне нужно сделать таг, слить его с бранчем srpms, чтобы сделать 
> положить в пакет исходники нового бранча, исправить .gear-rules и 
> собрать пакет.

  С помощью gear. Можно это делать сразу в hashr (см. ниже).

> 
> Потом установить его в hasher, чтобы в рабочей системе не устраивать 
> свинство с *-devel и промежуточными результатами сборки - опа, а какие 
> тогда преимущества этого подхода, если все сводится к старому способу с 
> .orig?

  С борку в hasher выполняю спомощью gear:

$ gear --hasher -- hsh ...

  В сложных случаях, когда нужен "сырой" и/или промежуточные результаты
сборки .src.rpm, действую через:

$ gear --rpmbuild -- rpmbuild --nodeps -b*

> 
> Значит собирать надо в бранче (ладно, иногда на свинство можно 
> согласиться ;) ), хорошо, собираю, какой командой теперь разницу 
> выгрузить в файл, перейдя в бранч srpms?

  git-diff, если правельно понял вопрос.

-- 

С уважением. Алексей.


----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 481 байтов
Описание: OpenPGP digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20070411/5314722f/attachment-0001.bin>


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