[devel] gear -- создание тарбола из другого branch
Sergey Vlasov
=?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Пн Сен 25 22:06:17 MSD 2006
On Sun, Sep 24, 2006 at 11:14:10PM +0400, Sergey Vlasov wrote:
> On Sat, Sep 23, 2006 at 07:54:46PM +0400, Dmitry V. Levin wrote:
> > По моему, идея выглядит вполне живой.
>
> Не вполне доделанная реализация выложена в
> git.alt:vsu/packages/gear.git в бранч vsu/gear-tags; сейчас это
> годится только для того, чтобы обругать. Средства для обновления
> .gear-tags, кроме /dev/hands, пока отсутствуют.
Без описания никто даже смотреть не хочет?
Сейчас там сделано вот что:
- Опция "-t ID" у gear теперь требует параметр в виде COMMIT[:PATH]
(указание только объекта tree недостаточно - требуется ещё
идентификатор соответствующего объекта commit). Объект COMMIT
используется при проверке допустимости ссылок на другие объекты.
- Добавлена новая директива для .gear-rules:
tags: PATH
В параметре указывается путь к файлу тегов. При отсутствии этой
директивы файл тегов ищется под именем ".gear-tags".
- Файл тегов состоит из строк в формате:
SHA1 NAME
Поддержки комментариев сейчас нет (и нужна ли она там?).
- Для директив tar* доступна новая опция:
tree=COMMIT[:PATH]
При этом COMMIT может указываться в виде либо значения SHA-1, либо
имени, присутствующего в файле тегов. В значении опции могут
использоваться элементы @name@, @version@, @release@, которые
заменяются на соответствующую информацию, полученную из spec-файла.
- Допустимость значений SHA1, указанных в файле тегов, сейчас
проверяется по мере их использования; в принципе можно сделать и
принудительную проверку всех SHA1 при обнаружении файла тегов.
Утилита для обновления .gear-tags всё ещё не написана, её
использование видится примерно таким:
gear-update-tag [-r RULES] TAG [VALUE]
В текущем каталоге ищется файл RULES (либо .gear-rules), по
содержимому файла определяется имя файла тегов (либо используется
файл .gear-tags). В файл тегов добавляется новая запись (либо
заменяется существующая) с именем TAG и значением SHA1,
соответствующее коммиту VALUE (либо коммиту, на который указывает
TAG в текущем репозитории).
gear-update-tag [-r RULES] --all
Для всех тегов, использующихся в файле правил, в файл тегов
добавляются записи, соответствующие текущему состоянию тегов в
репозитории.
gear-update-tag [-r RULES] --clean
Из файла тегов удаляются записи, не используемые в файле правил.
Во всех вариантах вызова gear-update-tag будут использоваться файлы из
рабочей копии, а не из репозитория. Вероятно, при проверке
допустимости использования коммитов, помимо HEAD, стоит заглядывать и
в $GIT_DIR/MERGE_HEAD (на случай, если кто-то решил совместить merge с
обновлением файла тегов).
(Кстати, сейчас gear --commit портит MERGE_HEAD - можно попробовать
этого избежать, если вместо git-commit использовать напрямую
git-update-index, git-write-tree, git-commit-tree.)
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20060925/e780e479/attachment-0001.bin>
Подробная информация о списке рассылки Devel