[sisyphus] ppp-2.4.5-alt1

Alexey Shabalin a.shabalin на gmail.com
Ср Янв 13 08:44:25 UTC 2010


13 января 2010 г. 1:57 пользователь Michael Shigorin написал:
> On Tue, Jan 12, 2010 at 07:17:11PM +0200, I wrote:
>> > - изменена схема сборки из git. Кому не нравится прошу
>> >   высказать пожелания.
>> Мне не нравится хранить не имеющее ни малейшего отношения
>> к gear в .gear.  Для такого IMHO лучше держать чистый master,
>> а исходники -- в бранче upstream.
>
> Тем паче что апстрим в гите уже и живёт:
> git remote add upstream git://ozlabs.org/~paulus/ppp.git
>
> Твоё объединение пачек патчей устраивает, но не понравилось:
> - засовывание спека и дописходников в .gear (они ж не относятся);
> - смесь из апстримных исходников и этого всего в master.

Засовывая спек в .gear я как раз избегаю смешивания с апстирмными исходниками.
Поэтому мне не мешает всё смержить в master без ours.

>
> IMCO тарбол лучше собирать из тега, да и мегапатч тогда уж лучше
> делать между тегом и веткой, в которую помержено всё нужное.
>
> Далее:
> - girar-download (см. в моём girar-utils.git), чтоб быренько
>  найти, прописать и втянуть remotes;
> - поприбивал свои старые ненужные бранчи локально и на git.alt;
> - втянул твои патч-бранчи как локальные:
>  git branch -r | grep patches | while read i; do git checkout -b ${i#shaba/} $i; done
> - как сегодня предлагали, отодвинул master:
>  git branch -m master oldmaster
> - сделал чистый бранч:
>  git-empty-branch master

Это позволяет наследовать старую историю? И сборочница это пропустит?
тогда хорошо, возьму на вооружение.

> - сгенерил кусок .gear/rules:
>  git branch | grep patches | while read i; do echo "diff: v2.4.5:. $i:. name=ppp-2.4.5-${i#patches/}.patch"; done
> - сделал заготовку для использования в спеке:
>  N=0; git branch | grep patches | while read i; do echo "Patch$N: ppp-2.4.5-${i#patches/}.patch"; N=$((N+1)); done
>  N=0; git branch | grep patches | while read i; do echo "%patch$N -p1"; N=$((N+1)); done
> - переставил тег v2.4.5 на соответствующий апстримный коммит:
>  git tag -d v2.4.5

Чем мой тег не понравился :) там же стоял.

>  git checkout -b upstream upstream/master
>  git log       # HEAD на 2.4.5
>  git checkout master
> - поделал fake merge (патч-бранчи в master реально НЕ мержатся):
>  git merge -s ours upstream
>  git branch | grep patches | while read i; do git merge -s ours $i; done
> - поскольку старый тег v2.4.5 удалён, а других и не было, то
>  rm -rf .gear/tags
>  gear-update-tag -avc && git commit -am 'gear-update-tag'
>
> Результат ещё немного подчистил по части спека и пушнул.
> Просьба посмотреть и отозваться насчёт репо -- код должен быть
> тот же.

Меня устраивает этот результат. Я тоже считаю, что сделать самому
легче, чем объяснять как сделать другим.
Большое спасибо, что ты ещё и описал сам процесс. На его основе надо
новичков учить приёмам работы с git.

> PS: ppp обновляется крайне редко, поэтому решил не использовать
> @version@ для патчей в .gear/rules: патчи делались от 2.4.5,
> это и отражено в их рецептах и названиях.  Впрочем, для ядра
> tmc-tc на основе часто, но несильно изменяющегося 2.6.27.y
> использую схожий подход и не вижу поводов расстраиваться.
>
> PPS: в воздухе запахло gear-update-patches и .gear/rules.in...

-- 
Alexey Shabalin


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