恼人的软件版本控制,还是仅仅是我?

时间:2014-09-02 06:41:06

标签: git svn version enterprise snapshot

我们的一位开发人员继续将其软件发布到"发布" Nexus的存储库采用奇怪的版本控制格式,例如5.2.3-6-gc0dc298。这实际上是major.minor.build-#ofcommits-lastCommitTag。我理解这对于开发人员来说可能很有用,可以通过观察版本号来快速识别对这个二进制文件所做的功能,但这不是标准吗?

我认为这与敏捷与否,Git与SVN差异有关,而与Java与Haskell无关。我相信可释放的版本格式只是x.y.z,而我会将上述格式视为SNAPSHOT格式。我对吗?在生产环境中使用长版本格式是否有任何优点?

1 个答案:

答案 0 :(得分:2)

  

奇怪的版本控制格式,例如5.2.3-6-gc0dc298。

这是一种基于最近的标记引用尚未标记的提交的方法。

换句话说,“可释放的版本格式只是x.y.z”可以通过标记实现,遵循您想要的任何标准,例如Semantic Versioning

但是,如果您没有标记所有版本(通常是在多个日内发布周期中,您正在推送和部署大量非常小的修补程序),那么git describe是一个很好的选择。

它分开:

  • 开发生命周期(生成要发布的稳定版本)
  • 发布生命周期(您在发布分支上有许多特定于生产的更改/小修复,它们将被或不会被反向移植到开发分支)。

点击“Is there a standard naming convention for git tags?

了解详情