Можно ли использовать GIT для идентификаторов, похожих на UUID? - PullRequest
1 голос
/ 17 января 2011

Мне нужно создать уникальные «неизменяемые» идентификаторы для фрагментов кода в моем хранилище - которые охватывают все ревизии данного объекта / фрагмента кода.Цель состоит в том, чтобы, если кто-то отправил фрагмент кода, я мог быстро сопоставить его с объектом, используя sha1 кода (если он или его предыдущая версия находятся в репозитории отправителей).Оттуда я могу использовать этот уникальный идентификатор для извлечения метаданных о фрагменте кода.

Sha1 в git кажутся отправной точкой для создания UUID (версия 5), и можно искать в репозитории git, начиная сsha1, а затем пересекают дерево, чтобы найти исходный файл sha1, когда он был впервые зафиксирован.Имеет ли смысл использовать этот номер для уникального идентификатора фрагмента кода во всех его ревизиях?

1 Ответ

1 голос
/ 17 января 2011

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

  1. Вам нужно будет убедиться, что «разветвление» никогда не произойдет, то есть кусок никогда не расходится на два разных куска. В противном случае оба блока получат один и тот же UUID, который вам, вероятно, не нужен.

  2. Помните, что SHA1 по своей природе чувствителен к незначительным изменениям ввода, включая дополнительные переводы строк и т. Д., Поэтому вы должны быть осторожны при создании хэша для поиска в базе данных Git.

...