[devel] I: gear-tarimport
Mikhail Yakshin
=?iso-8859-1?q?greycat_=CE=C1_altlinux=2Eorg?=
Ср Янв 31 13:22:15 MSK 2007
Денис Смирнов пишет:
> MY> Посмотрел, спасибо, я раньше не знал о существовании этого пакета. Там
> MY> есть масса полезных вещей (например, gear-rel, svn-update, gi,
> MY> git-repos-cleanup, send-devel, pkg_release, sisyphus-list-incoming - они
> MY> все по образу действия по-моему достаточно близки к comfort и хотелось
> MY> бы их действительно по возможности объединить туда).
>
> Я только за. Потому как по моему личному мнению наличие в сизифе каждого
> пакета с именем "<firmname>..." это неявная бага. Если пакет seiros-.*
> используется только у меня, то ему не место в сизифе. А если используется
> не только мной, то почему бы не объединить все подобные утилиты в один
> пакет?
Ура =) Очень близкая мысль :)
> MY> Относительно некоторых утилит - мне с первого взгляда оказалось не
> MY> очевидным, что они делают %)
> MY> ptch - для каких работ это предназначено? В git сейчас не проще просто
> MY> скоммитить все "до" и "после" и вытащить этот патч, если он нужен
> MY> файлом, просто с помощью разницы между ref'ами?
>
> Это для старой эпохи, хотя и сейчас изредка нужно. Есть некий workdir,
> который не использует никакого SCM. Мы берем в нем и редактируем
> некоторые файлы, переименовывая оригиналы в *.orig. Потом запускаем этот
> файл, и получаем вывод по смыслу тот же что если бы мы набрали svn
> diff/git diff в workdir где они используются.
>
> Сейчас я его использую в следующем случае:
> - rpmbb <spec>
> - В BUILD имеем несобравшийся пакет
> - переименовываю то что пытаюсь править в .orig и запускаю make (чтобы не
> пересобирать весь пакет)
> - повторяю предыдущий шаг до тех пор пока пакет не соберется
> - ptch > 1.patch
> - переношу этот патч в каталог с git, и либо привязываю его как новый
> патч к пакету, либо набираю patch -p0 < 1.patch
Вот, отлично, еще одна схема workflow у нас появилась :) Как бы ее
проапгрейдить для git'а? Например, чтобы собираемый патч автоматически
привязывался к пакету в git'е и прописывался как "PatchX: ..." и %patch
что-то там?
> MY> ptch_filter - один из самых интересных, по идее, скриптов - он как-то
> MY> хитро фильтрует патчи - но как - я с первого взгляда не понял.
>
> Он глючный, поэтому и лежит в отдельном пакете :( Он мне здорово помогал
> обрабатывать результат сравнения бранчей астериска.
Его как-то более универсально можно использовать? И - в идеале -
учитывая то, что пакет лежит в репозитарии?
> MY> Что *именно* делают Add и Mv, кроме наиболее общих "добавляют все, что
> MY> не добавлено" и "перемещают все массово из одного места в другое" с
> MY> пустыми commit messages - я так и не понял? Update - зачем там делаются
> MY> эти хитрые chmod'ы?
>
> Add/Mv делают именно это. Наследие тяжелого прошлого когда я хранил _все_
> свои данные в svn, естественно далеко не для всех имела смысл история с
> commit messages. Кстати Mv умеет ключик -b, когда он не пытается
> коммитить.
>
> В случае с git эти скрипты не имеют смысла, потому как есть:
> git add (делает то же что Add)
> git mv (который точно так же как Mv прекрасно обрабатывает группы файлов,
> чего не умеет svn mv).
>
> Их имеет смысл паковать только в том случае, если доработать до
> универсальности (работы как с svn, так и с git репозиториями). Если
> приходится работать с группой репозиториев в разных SCM, то честно говоря
> сильно достает использовать разный набор команд для простых операций.
>
> Когда-нибудь я озверею и напишу даже скрипт Commit :)
>
> Вообще эта группа недоскриптов если и нужна, то их следует упаковать в
> отдельный пакет. Хотя бы потому что они тянут зависимость и на git, и на
> svn. А если я чего-нибудь не того выпью, то и на cvs потянут.
Т.е. отдельный маленький проект - организация общего интерфейса ко всем
version control системам. По-моему - нужная и полезная вещь.
> Вообще многие такие вещи имеет смысл бить на пакеты из-за очень большого
> объема requires.
Согласен. Но некий базовый workflow-пакет с разумным объемом requires
IMHO имеет право на существование.
> MY> В перспективе - мне хотелось бы еще поговорить с lav@ насчет
> MY> etersoft-build-utils - т.к. там масса наработок по сборке пакетов и
> MY> абсолютно не хочется дублировать эту функциональность в comfort, набивая
> MY> все те же самые грабли, что уже наметили на карте добрые люди и
> MY> изобретать велосипед (особенно впечатляет там сборка из одного ALT'ового
> MY> spec в кучу дистрибутивов). В идеале - хотелось бы интегрироваться в ту
> MY> или другую сторону, т.к. я умышленно сейчас в comfort делал сборку
> MY> пакетов в очень минимальном виде, а в etersoft-build-utils нет некоего
> MY> workflow для git. Вместе получилось бы хорошо.
>
> Думаю да. В любом случае получится один low level и стайка high level
> пакетов.
> Кстати etersoft-build-utils мы с lav@ уже давно допинали до
> работоспособности с gear. rpmbb <specname> в git repo отрабатывает именно
> так как ожидается.
Насколько я видел, когда смотрел последний раз - там просто меняется
оборачивается использование rpmbuild или hsh в gear, если есть каталог .git.
Что бы мне лично хотелось видеть в утилите, которая собирает:
1. Возможность запуска без параметров для сборки того пакета, в
директории с репозитарием которого я сейчас нахожусь. (Распространяется
не только на саму директорию с .git, но и все ее поддиректории).
2. Возможность запуска, указав только имя пакета (пакет найдется в
репозитарии $HOME/git/имя-пакета) - типа "rpmbb samba". При
невозможности найти такой репозитарий должна быть выведена подсказка,
какими способами заполучить такой репозитарий себе (скачать, создать,
импортировать и т.п).
3. Возможность запуска, указав путь к репозитарию.
4. После успешной сборки - подсказку, что дальше можно сделать с
собранным пакетом: поставить себе в систему, поставить в виртуальную
систему, поставить
5. Утилиту(ы) с единым синтаксисом для сборки в rpmbuild и hasher -
отличающуюся либо суффиксом в названии (build-rpmbuild, build-hasher),
либо какой-то опцией (build --engine=rpmbuild, build --engine=hasher).
Второе даже предпочительнее, т.к. можно этот самый engine по умолчанию
задать через конфиг, кому как удобнее.
6. Сокрытие SRPMок как таковых от пользователя - они создаются и живут
только где-то внутри. Наружу они выходят только для отправки в инкаминг
и то, пока этот механизм не умрет.
Кто-нибудь может высказать еще какие-то соображения?
--
WBR, Mikhail Yakshin AKA GreyCat
Подробная информация о списке рассылки Devel