Предоставляет ли bitbucket / git уникальные идентификаторы для веток и коммитов? - PullRequest
0 голосов
/ 11 октября 2019

Мы пытаемся создать набор аналитических данных для наших репозиториев bitbucket. Мы относительно новички в этом и пытаемся выяснить, предоставляет ли git (или bitbucket) уникальные идентификаторы для веток и коммитов.

Хеши не являются уникальными - поскольку два коммита с одинаковым «контентом» имеют одинаковый хеш (см., Например, Что такое идентификатор коммита Git? )

Мырассмотреть возможность хеширования хеша с другими атрибутами для создания нашего собственного уникального идентификатора, но лучше использовать нативный Git, если он существует.

1 Ответ

3 голосов
/ 11 октября 2019

Git создает создает уникальные хэши для каждого коммита. (теоретически вероятность столкновения очень мала, но это очень маловероятно).

Как объяснено в этом ответе, git использует следующую информацию для генерации хеша:

  • Исходное дерево коммита (которое раскрывается для всех поддеревьев и BLOB-объектов)
  • Родительский коммит sha1
  • Информация об авторе (с отметкой времени)
  • Информация о коммитере (верно, они разные, также с отметкой времени)
  • Сообщение коммита

, поскольку отметка времени интегрирована, у вас никогда не будет двух одинаковых хэшей дляодин и тот же «контент».

Однако вы можете иметь несколько ссылок , указывающих на один и тот же хэш коммита: теги , ветви .

Заключение

В зависимости от того, что вы хотите, вы можете:

  • просто использовать хиты коммитов git, поскольку они уникальны для каждого коммита. Если две ветки указывают на один и тот же коммит, вы будете анализировать только один раз, но в зависимости от ваших потребностей это может не потребоваться, поскольку это действительно тот же самый коммит.
  • вы можете объединить хеш git commit с веткойНазовите, если вам действительно нужен анализ для каждой ветви, даже если они указывают на один и тот же код.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...