【问题标题】:Is it possible to get a simple numeric revision number from Git?是否可以从 Git 获得一个简单的数字修订号?
【发布时间】:2014-11-08 17:38:32
【问题描述】:

我正在将我的 VCS 从 Subversion 迁移到 Git。当我使用 Subversion 时,我曾经使用 Subversion 修订号作为我的程序集版本的最后一个组件。在 TeamCity 中,我使用%build.vcs.number% 作为内部版本号格式的一部分,并在编译之前使用“AssemblyInfo Patcher”(或有时是 MSBuild 社区任务)使用版本号更新我的 AssemblyVersion 属性。这一切都运作良好,并且可以轻松地将任何给定的程序集追溯到确切的源版本。

不幸的是,在 Git 中,不再有修订号。相反,我们有不能在 AssemblyVersion 中使用的长十六进制哈希码。到目前为止,这是我对改用 Git 感到遗憾的一件事。

有没有办法从 Git 中检索一个简单的数字版本标识符,我可以如上所述在我的构建配置中使用它?

【问题讨论】:

标签: git continuous-integration teamcity


【解决方案1】:

git describe 是我找到的最接近修订号的。它给你

  • 最后一个标签的名称
  • 自该标签以来的提交次数
  • 提交 SHA
$ git clone git://github.com/antirez/redis

$ cd redis

$ git describe
with-deprecated-diskstore-2853-g5a526c2

或者如果你只想要数字

$ git describe | awk '$0=$--NF' FS=-
2853

【讨论】:

  • 我得出的结论是这在 Git 上不可行,所以我放弃了使用 Major.Minor.Build.Revision 格式。我可能会改用 SemVer,第四位是自动递增的内部版本号。我计划将 Git 修订版放入程序集属性之一,可能是 [AssemblyConfiguration] 属性,但我在等待 TeamCity 8 之后再这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-29
  • 2014-12-28
  • 1970-01-01
相关资源
最近更新 更多