现在,我们正在使用 Perforce 进行版本控制。它有一个方便的特性,即严格增加的更改编号,我们可以使用它来引用构建,例如“如果您的构建至少为 44902,您将获得错误修复”。
我想改用分布式系统(可能是 git),以便更轻松地进行分支和在家工作。(Perforce 完全可以实现这两者,但 git 工作流有一些优势。)因此,尽管“附属开发”将是分布式的,而不是指通用的修订顺序,但我们仍然会维护一个主 git 存储库,所有更改都会需要在创建构建之前输入。
保留严格增加的构建 ID 的最佳方法是什么?我能想到的最直接的方法是有某种 post-commit 钩子,只要主 repo 更新就会触发,它会注册(哈希)新树对象(或提交对象?我是新手git) 带有一个分发 id 的集中式数据库。(我说“数据库”,但我可能会用 git 标签来做,只是寻找下一个可用的标签号或其他东西。所以“数据库”实际上是 .git/refs/tags/build-id/。 )
这是可行的,但我想知道是否有更简单、已经实现或标准/“最佳实践”的方式来实现这一点。