[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