[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