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