[devel] git-update-server-info and refs

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Сб Май 6 21:13:31 MSD 2006


On Sat, May 06, 2006 at 07:36:16PM +0400, Anton Farygin wrote:
> Вопрос к знатокам git'а:
> 
> делаю git-update-server-info для скачанного репозитария.
> 
> В файле .git/info/refs получается часть тэгов помечено как {}, часть - 
> не помечено.
> 
> Что бы это значило ?

Вообще ^{} обозначает операцию снятия тэгов - т.е., если ref указывает
на объект типа tag, ref^{} будет указывать на объект какого-либо
другого типа, на который в конечном итоге указывал тэг (если в цепочке
было несколько тэгов, указывающих друг на друга, убирается вся
цепочка).

В .git/info/refs для ссылок, указывающих на объекты типа tag, пишется
две строки - sha1 самого тэга (без ^{}) и объекта, на который указывал
этот тэг (с ^{}; обычно это commit, но в общем случае это не
обязательно).

> Воспроизвести можно на udev:
> git-clone git://git.kernel.org/pub/scm/linux/hotplug/udev.git
> cd git
> git-update-server-info
> 
> И потом посмотреть .git/info/refs для тэга 091
> 
> Посмотрел в исходники - там проверяется наличие if (o->type == tag_type)
> 
> Для иэга 091 почему-то не выставлен tag_type
> 
> Кто виноват ? что делать ?

Виноват в данном случае мантейнер udev, который с некоторого времени
перестал создавать тэги с описаниями при выпуске версий udev.  В git
предполагается, что тэг без описания (просто файл в ./git/refs/tags,
содержащий sha1 commit-а) не нужен никому, кроме разработчика, который
его поставил (возможно, временно), и по умолчанию такие тэги не
забираются при выполнении git fetch (только при явном вызове git fetch
--tags).  А вот полноценный тэг, для которого создаётся отдельный
объект, содержащий текстовое описание и, возможно, подпись GPG, git
fetch будет забирать автоматически, если объект, на который указывает
этот тэг, доступен локально.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 191 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060506/b468b974/attachment-0001.bin>


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