В данный момент мы используем Perforce для контроля версий. Он имеет удобную функцию строго увеличивающегося числа изменений, которую мы можем использовать для ссылки на сборки, например, «вы получите исправление, если ваша сборка не менее 44902».
Я хотел бы переключиться на использование распределенной системы (возможно, git), чтобы было легче переходить и работать из дома. (И то, и другое вполне возможно с Perforce, но рабочий процесс git имеет некоторые преимущества.) Таким образом, хотя «разработка трибутарного потока» будет распространяться и не будет ссылаться на общую последовательность редакций, мы все равно сохраним мастер-репозиторий git, чтобы все изменения необходимо ввести до создания сборки.
Какой лучший способ сохранить строго увеличивающиеся идентификаторы сборки? Самый простой способ, который я могу придумать, - это иметь какой-то хук после фиксации, который запускается всякий раз, когда обновляется главное репо, и он регистрирует (хэш) новый объект дерева (или объект фиксации? Я новичок в git) с централизованной базой данных, которая раздает идентификаторы. (Я говорю «база данных», но я, вероятно, сделаю это с помощью тегов git и просто поищу следующий доступный номер тега или что-то в этом роде. Таким образом, «база данных» действительно будет .git / refs / tags / build-id /. )
Это выполнимо, но мне интересно, есть ли более простой, или уже реализованный, или стандартный / лучший метод для достижения этой цели.