Неожиданный коммит хеш в тарболе на GitHub - PullRequest
1 голос
/ 07 ноября 2011

На следующей странице представлен короткий хэш 89b734fd24 коммита, соответствующего тегу 1.1.1: https://github.com/jezdez/django_compressor/tree/1.1.1

Однако в следующем архиве упакованный каталог называется jezdez-django_compressor-a66ab32: https://nodeload.github.com/jezdez/django_compressor/tarball/1.1.1

Как правило, короткий хеш в tarball соответствует хешу коммита.Откуда взялся a66ab32?

ОБНОВЛЕНИЕ: Похоже, что кто-то из GitHub только что исправил хеш в tarball для тега, и теперь он согласован.По крайней мере, я больше не могу воспроизвести проблему.

ОБНОВЛЕНИЕ2: та же проблема возникает с https://github.com/stefanfoulis/cmsplugin-filer/tree/0.8.0,, где tarball содержит stefanfoulis-cmsplugin-filer-f6c10c2 (хэш тега), тогда как хэш коммита равен 3bbbd37

UPDATE3:

  • [22:16] зависит, является ли тег легким тегом, или нет
  • [22:16] легкие теги являются указателями на коммиты, реальные теги имеютсвой собственный sha / message / tagger, связанный с ним
  • [22:17] см. также: http://progit.org/book/ch2-6.html

Ответы [ 2 ]

4 голосов
/ 07 ноября 2011

Хеш - это идентификатор объекта тега.Трудно найти идентификаторы объектов этих тегов, но это возможно.

$ git show-ref 1.1.1
a66ab32181a6597ec946423f2aecbde9ed113e93 refs/tags/1.1.1

$ git rev-parse 1.1.1
a66ab32181a6597ec946423f2aecbde9ed113e93

$ git show --pretty=raw 1.1.1
tag 1.1.1
Tagger: Jannis Leidel <jannis@leidel.info>

1.1.1 yeah!

commit 89b734fd24c9e172949cac6df29ea591a95f8aa3
tree 042332aaba8b325f9a65697de5c340919cc42f72
parent f226274e4e90c58956753bcd33a406a59e1b419a
parent d683e30dd146bb6db62934a6f561aea27fd84a06
author Jannis Leidel <jannis@leidel.info> 1320241044 +0100
committer Jannis Leidel <jannis@leidel.info> 1320241044 +0100

    Merge branch 'release/1.1.1'

У zip-файла есть sha коммита, в каталоге - sha фактического объекта-тега.

1 голос
/ 07 ноября 2011

Если не вдаваться в подробности, я бы сказал, что это, вероятно, аннотированный тег, возможно, также подписанный.

Это отдельные объекты, и поэтому они имеют отдельный идентификатор объекта в базе данных объектов git.Тег ссылается на идентификатор коммита.(просматривая репо, который вы сейчас связали)

Редактировать Вот что происходит:

git show a66ab32

tag 1.1.1
Tagger: Jannis Leidel <jannis@leidel.info>
Date:   Wed Nov 2 14:37:24 2011 +0100

1.1.1 yeah!

commit 89b734fd24c9e172949cac6df29ea591a95f8aa3
Merge: f226274 d683e30
Author: Jannis Leidel <jannis@leidel.info>
Date:   Wed Nov 2 14:37:24 2011 +0100

    Merge branch 'release/1.1.1'

Таким образом, вы можете видеть a66ab32 имен тегов, 89b734fd24c9e17 называет соответствующие коммиты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...