首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用git进行提交时设置版本号的最佳实践

使用git进行提交时设置版本号的最佳实践
EN

Stack Overflow用户
提问于 2014-06-23 12:11:24
回答 1查看 1.6K关注 0票数 4

我想自动设置版本号给我的程序,以这样的方式,他们是一致的git标签。这是怎么做到的?建议的方法是什么?

示例

以下高度复杂的python脚本打印其版本号。每次提交时,我应该如何自动更新版本号?

代码语言:javascript
复制
# application.py
hardcoded_version_number = "0"
print("v"+hardcoded_version_number)

每次提交后,版本号都应该更新。

发行版0.1 /初始提交:

代码语言:javascript
复制
hardcoded_version_number = "0.1"
print("v"+hardcoded_version_number)

特性1:

代码语言:javascript
复制
hardcoded_version_number = "0.1-1-gf5ffa14" # or something like this
print("v"+hardcoded_version_number)

发行版0.2:

代码语言:javascript
复制
hardcoded_version_number = "0.2"
print("v"+hardcoded_version_number)

等等。

我目前遇到的另一个问题是,在运行时,我使用的GUI元素无法从任何外部源读取版本号。所以我唯一的选择就是硬编码。

EN

回答 1

Stack Overflow用户

发布于 2014-06-23 12:49:25

在为这些版本生成名称方面,我认为您的做法是正确的。git describe生成的字符串正是您要寻找的表单:

该命令查找可从commit访问的最新标记。如果标记指向提交,则只显示标记。否则,它将标记名称后缀为标记对象顶部的附加提交数和最近提交的缩写对象名称。

如果您想从代码中访问此版本字符串,那么实际上有两个选项:

  1. 在构建阶段,git describe 使用提取它。在本例中,您可能希望将其写入一个未跟踪的临时文件,然后在运行时将该文件读入程序中。我用过这种方法,效果很好。
  2. 使用 filter 来污点和清理文件。--我自己从未使用过,但实际上,这是一种可以从存储库中的相同文件中自动修改文件的方法。

为什么有必要这样做?Git不允许您为自己编写提交的散列。提交散列是基于许多事情计算的,包括文件内容、提交消息、时间戳和父散列。当您知道哈希是什么时,它引用的提交实际上已被锁定。修改其内容或提交消息以包含其哈希将使旧哈希无效。

有关更多讨论,请参见this question

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24365608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档