[devel] gear -- создание тарбола из другого branch

Alex V. Myltsev =?iso-8859-1?q?avm_=CE=C1_altlinux=2Eru?=
Вт Сен 26 17:01:36 MSD 2006


On Tue, 26 Sep 2006 15:49:04 +0400
Sergey Vlasov wrote:

> branch1 - это имя, которое gear-release в момент запуска преобразует в
> sha1?  В таком случае, даже если .gear-tags лежит в репозитории, это
> само по себе ничего не значит, так как неизвестно, на что указывала
> ссылка с указанным именем в момент запуска gear-release,
> следовательно, действия мантейнера невозможно повторить
> ...  Разве что модифицировать .gear-tags в этом дереве, добавив туда
> реально использованные sha1 пришитых бранчей.
Ну ситуация же не становится лучше, если sha1 хранить в .gear-tags или
ещё где-то. Всё равно непонятно, откуда эти sha1 появились. Я предлагаю
хранить sha1 прямо в деревьях, родными механизмами git.

> > * Создаёт новый коммит1, который ссылается на новосозданное дерево,
> > а родителем числит прошлый release commit. Создаёт новый коммит2,
> >   который ссылается на новосозданное дерево, но не имеет родителей.
> Откуда берётся прошлый release commit?
Хм. Они вроде все лежат в refs/releases/?

> У коммит1, если уж делать его в таком виде, нужно вторым родителем
> ставить текущий коммит
Нет, родителем у него должен быть только прошлый release commit. Тогда
дифф между релизами будет настоящим диффом, со всеми исходниками.
А вот информацию о всех сшитых вместе коммитах надо где-то хранить в
релизе, это правда. Иначе нельзя будет проверить наследственность.

> > если .gear-tags непуст, то gear не найдёт в нём path* и отвалится.
> >   Это напоминание сборщику, что HEAD требует применения
> > gear-release.
> Это неудобно - как минимум, нужен wrapper, позволяющий вызвать gear
> одной командой (либо поддержка в самом gear).
Поддержка в самом gear должна отсутствовать по определению. Из этого
commit-ish не собирается однозначно пакет; значит, gear на него
применять нельзя.
Wrapper можно сделать, но он, разумеется, не будет обеспечивать
воспроизводимости.
 
> это должен быть не gear-release, а что-то другое.
ОК.

> при отсутствии связей между коммитами все объекты всегда передаются
> полностью
Беда. Я надеялся, что если дерево уже есть, то его заново не передают.
Тогда, конечно, bare отпадает.

> Кроме того, имея подобный коммит, никак не связанный с остальной
> историей, невозможно получить изменения исходников относительно
> оригинальной версии
Ну, это и сейчас, с историей, непонятно как делать. Где она,
оригинальная версия?

-- 
Best regards,
Alex V. Myltsev.



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