[Comm] git and packaging

Андрей Черепанов =?iso-8859-1?q?cas_=CE=C1_altlinux=2Eru?=
Ср Мар 18 11:22:47 MSK 2009


17 марта 2009, Andriy Dobrovol`s`kii написал(а):
> 2009/3/16 Андрей Черепанов <cas на altlinux.ru>:
> > 16 марта 2009, Andriy Dobrovol`s`kii написал(а):
> >> > Если есть репозиторий, то сборку можно и локально через gear-hsh
> >> > делать. Ничем от hasher не отличается кроме того, что пропускается
> >> > лишняя стадия создания src.rpm.
> >>
> >> Ну, не думаю, что кто-нибудь отдельно создает src.rpm-ы... А вот
> >> заменит ли gear-hsh процедуру инициализации локального hasher?
> >
> > А как запускать в хэшере? Я раньше, до gear, создавал. Сборка локально
> > через gear и через hasher отличается только входными данными. Настройка
> > та же.
>
> А... Теперь понял о чем Вы. А каков ответ на вопрос?
Я думал, что единственный способ нормально запустить в хэшере - это скормить 
ему src.rpm. Drool подсказал, что можно и через hsh-shell, но IMHO, это 
грязный хак. Так что приходится делать src.rpm.

> >> >С возможностью оперировать исходниками (например, делать
> >> > патчи) уже в раскрытом виде, не мучаясь с их поиском и распаковкой.
> >>
> >> Да я и так знал где они лежат... ;) А закачивать авторские исходники
> >> нужно в любом случае. Выигрыш по трафику только если у автора тоже гит
> >> и структура своего гита сразу правильно продумана...
> >
> > gear-update позволяет залить новый тарболл и в git будут только изменения
> > кода, а не исходники целиком.
>
> Ну, нужно значит дальше смотреть. Хотя для упаковщика польза
> сомнительная. Сколько пересобирал пакеты ради новых версий, ни разу
> старые тарболы не понадобились...
> Повторюсь, что про пользу СКВ для разработчика я ни разу не сомневаюсь.
А они остаются в истории git. Речь идёт про новые тарболлы. Кстати, можно из 
апстрима брать сразу из CVS, SVN и, разумеется, git, а не скачивать тарболлы и 
мучатся с их натягиванием на git.

> >> >Плюс
> >> > коммиты, как фиксация изменений. После этого потеря данных не страшна,
> >> > если git запушить (git push) на сервер. Трафик в этом случае
> >> > минимальный, а данные будут в порядке.
> >>
> >> Вот тут самый большой вопрос. Если я делаю только изменения в спеке
> >> добиваясь собираемости, на кой мне комиты? И весь связанный с ними
> >> оверхед? (Про полезность CVS для реальных разработчиков я в курсе.) И,
> >> наконец, пушить нужно куда-то... А куда? Если я ещё не в команде... А
> >> насобачившись собирать пакеты без оверхеда, захочу ли я грузить себя
> >> им только ради вступления в команду?..
> >
> > 1. Коммиты для сохранения результатов правки .spec
>
> Это понятно. Я спрашиваю про полезность таких комитов...
а) Откат в случае ошибки на работающую версию
б) хранение изменений: что и зачем менял

> > 2. Возможность правки кода для быстрого получения патчей (после чего
> > изменения откатываются)
>
> Тут, как я понимаю, упаковщику придется основательно учить команды СКВ?..
Не-а! Просто 
1. меняешь сам код
2. собираешь через gear-hsh $TMP --commit (временный коммит на момент сборки)
3. Если всё хорошо, а код хочется оставить нетронутым, то
git diff > file.patch
4. откатываешь изменения в основном коде:
git reset --soft HEAD^
4. добавляшь патч в спек, заодно меняешь changelog
5. git add . && gear-commit -a
У тебя сразу подставляется в описание коммита последняя запись из changelog из 
спека.


> > 3. Простое бэкпортирование через подписанные теги
>
> Это если упаковщику оно надо и он член команды. А если нет?
А если сосед попросит сделать для 4.1 branch, а у тебя 5.0?

> > Оверхед как раз резко уменьшается при сборке > 1 пакета. И никто не
> > мешает хранить локальный git и собирать из него через gear.
>
> Ну вот я и упражняюсь пока с таким гитом. Теперь вот оказывается нужен
> ещё и gear... 
gear нужен только для локальной сборки (для проверки или сборки для личных 
целей)

> Зависимость оверхеда от количества пакетов не понял. То,
> что уменьшается его удельный вес в общем объеме работы?
Твои ~/RPM/SOURCE и ~/RPM/SPECS начинают расползаться (особенно первый, там 
всё в одном каталоге). В этой свалке искать нужные патчи становится 
утомительно, да и перепрыгивание между сборочницей (~/RPM/BUILD, иначе где 
лежат распакованные сырцы?), каталогом со спеком и каталогом с тарболлами и 
патчами сильно отнимает время.

-- 
Андрей Черепанов
ALT Linux
cas на altlinux.ru


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