题
我想知道是否有一种方法可以自动标记一个更改集,因为它是在本地承诺的,或者将其推到窑炉存储库时。
我希望每个更改都具有具有版本/构建号码的标签。我计划将我的版本/构建数量存储在数据库中,并希望从数据库中检索此值,并在更改中添加标签。是否可以自动调用脚本作为后投资事件或推入窑炉存储库后的邮政事件?
我还可以接受任何其他方法,以在每个提交/推动下实现自动标记。
解决方案
而不是为每个更改创建标签,为什么不尝试以下一个:
- 使用更改集哈希作为标识符?
- 使用从日志生成的字符串作为标识符(见下文)?
可以使用此命令从日志中生成描述性字符串:
hg log -r 1.7.2 --template '{latesttag}-{latesttagdistance}-{node}\n'
结果采用表格:
<latest tag>-<# changesets since latest tag>-<changeset hash>
例如,在我当地的Mercurial仓库中,这会产生:
1.7.2-2-5e51254ad4d4c80669f462e310b2677f2b3c54a7
这告诉我,自tag 1.7.2以来,已经有两次提交,而当前的更改集则为5E51254A。
在Mercurial中,每个标签都会创建一个新的更改。因此,如果您标记每个提交,则将存储库中的更改数量增加一倍。您应该使用内置工具(如上所述),而不是尝试重新创建轮子。
其他提示
我想知道是否有一种方法可以自动标记一个更改集,因为它是在本地承诺的,或者将其推到窑炉存储库时。
您总是可以写一个帖子提交钩子来做到这一点。
我希望每个更改都具有具有版本/构建号码的标签。
标签对于确定您的承诺历史记录中的重要时刻很有用。提供与产品开发相关的有意义的名称,例如发行版1.0,发行版1.3等。
如果要制作标签,每个更改套件,那么您只会提高噪音水平。您仍然需要保留有关重要标签的信息。
将标签视为有关变更集的元信息。并非所有人都应该具有相同的重要性。并非所有人都需要元信息。
只有当您少时使用标签,才能为您提供有意义的历史记录。
在钩子上
看:
示例:通过按下,拉或解开添加变更组后运行。我已经用它来触发自动构建。
[hooks]
changegroup.yyyy = command
同样,有邮政后挂钩
[hooks]
post-<command> = command
不隶属于 StackOverflow