更新
这是一个 Ruby 特定的答案,但您可能可以在您选择的环境中实现等效的东西......
原始答案
在查看评论并深入研究 git 文档之后,尝试使用 git 标签作为版本号的一部分似乎是不谨慎的,如果只是因为 git 标签在提交之后才可用。
所以我写了一个简单的 rake 任务来直接在我的 config/version.rb 文件中增加内部版本号。我在进行提交和部署之前运行此脚本:
# Read config/version.rb file containing
# VERSION = [a, b, c]
# Overwrite config/version.rb file to contain:
# VERSION = [a, b, c+1]
task :bump_version do
desc "increment build number in config/version.rb"
file = "config/version.rb"
unless (File.exist?(file))
$stderr.puts("cannot locate version file #{file}")
else
s = File.open(file) {|f| f.read}
if (s =~ /(\d+)\D+(\d+)\D+(\d+)/)
s1 = "VERSION = [#{$1}, #{$2}, #{$3.to_i + 1}]"
$stderr.puts(s1)
File.open(file, "w") {|f| f.puts(s1) }
else
$stderr.puts("cannot parse version file")
end
end
end
对我来说很好。