[devel] Еще одно HOWTO про сборку пакета в git.alt и интеграцию с upstream scm
Eugene Prokopiev
=?iso-8859-1?q?prokopiev_=CE=C1_stc=2Edonpac=2Eru?=
Ср Апр 11 13:21:47 MSD 2007
Aleksey Avdeev пишет:
> Eugene Prokopiev пишет:
>
>>>>> Мне удобнее держать полученное из старонних источников отдельно, с
>>>>>мимниумом изменений: продукты полученные от поставщика могут требовать
>>>>>предварительной обработки (мытья, например) и до её проведения --
>>>>>незачем их мешать их с остальными инградиентами (на своей кухне я хозяин
>>>>>-- смешаю как сочту нужным ;-)).
>>>>
>>>>Это верно, однако разделение можно понимать по разному ;) Разные бранчи
>>>>требуют регулярного слияния, если же просто вынести исходники апстрима в
>>>>отдельный каталог, то получим и разделение (пока для меня в принципе
>>>>достаточное), и уменьшение количества операций.
>>>
>>> Деление -- получаем. Но выцепить изменения сделанные в исходниках уже
>>>сложнее...
>>
>>Кажется, выше я писал, каким образом я выцепляю изменения:
>>
>>
>>>Патчи, если таковые имеются, можно держать в отдельных файлах, как и
>>>раньше. Если эти патчи мои, то делаю я их старым проверенным способом:
>>>собираю апстримные исходники и тестирую разультат где-то отдельно
>>>(иногда в системе, в которой не жалко сделать make install ;) ),
>>>изменяемые файлы перед изменением обзываю .orig, после изменений делаю
>>>gendiff. Даст ли мне ощутимые преимущества какой-нибудь более правильный
>>>способ с отдельным бранчем под каждый патч?
>>
>>Если вы делаете иначе, пожалуйста, расскажите как (по возможности
>>подробно, с командами). Особенно интересуют преимущества по сравнению с
>>приведенным выше способом.
>
>
> Патчи, к которым я приложил руку после перехода на git, в виде файлов
> я не храню (только унаследываемые). Для из поучения -- использую diff
> между тегами, благо gear это позволяет. (Пока непозволял -- использовал
> самописанный велосипед для автоматизированного создания патчей на базе
> заданных коммитов.)
>
> Поскольку, для работы с данной схемой всё равно нужны фиктивные мержи
> и gear-upate-tag, у меня нет усложнения техпроцесса при хранении
> исходников в отдельном банче. Это, в свою очередь, позволяет
> небеспокоется о имени каталога, куда апстрим пакует исходники (если они
> распространяются в тарбл, то версия часто присутствует в имени
> каталога): достаточно соглашения, что всё находящееся в корне бранча с
> сорцами -- сорцы, полученные из внешнего источника (возможно --
> правленные, но в данном контексте это не важно).
Под каждый свой патч вы выделяете отдельный бранч? Из сказанного вами
вроде этого не следует, хотя я с трудом представляю себе обратное. Можно
все-таки пример?
Вот допустим, мне нужно изменить что либо в Makefile.in, я создаю бранч
(git-branch dbmail_2_2_makefile_patch dbmail_2_2), что я получаю? Копию
предыдущего без тагов? А идентификаторы коммитов будут такие же?
Теперь мне нужно сделать таг, слить его с бранчем srpms, чтобы сделать
положить в пакет исходники нового бранча, исправить .gear-rules и
собрать пакет.
Потом установить его в hasher, чтобы в рабочей системе не устраивать
свинство с *-devel и промежуточными результатами сборки - опа, а какие
тогда преимущества этого подхода, если все сводится к старому способу с
.orig?
Значит собирать надо в бранче (ладно, иногда на свинство можно
согласиться ;) ), хорошо, собираю, какой командой теперь разницу
выгрузить в файл, перейдя в бранч srpms?
--
С уважением, Прокопьев Евгений
Подробная информация о списке рассылки Devel