[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