1
1
您要做的是称为关键字扩展,而不是 supported in Mercurial core . 你可以把扩展集成到 make file 或(更简单)与 Keyword extension .
|
2
6
问题正如你所确定的,你确实创造了 Catch-22 这里的情况。
你不能把有意义的信息
我的解决方案我的建议是:
我的理由
AS
@Ry4an suggests
,使生成系统在生成时使用信息将修订信息插入软件
从
版本控制系统是更好的选择。唯一的问题是,如果您试图从
但是,我倾向于不鼓励这样做——在我自己的构建系统中,如果无法提取修订信息,那么构建就会失败。 此外,作为 @Kai Inkinen suggests ,使用修订 数 不可携带。一台机器上的版本21可能是另一台机器上的版本22。虽然这现在可能不是问题,但如果你开始与其他人通婚,将来可能是问题所在。 最后,我解释了我不喜欢在 question 我的问题与你自己的问题类似:
然后对建议使用
|
3
1
使用预提交钩子是关键所在。您不应该将剩下的版本_Gen.sh放在源文件thesmves中,只放在构建/发布工件中,您可以使用“更新”钩子更准确地执行这些操作。 您不希望makefile在每次提交时都在repo中发生实际更改,这只会让合并变得很糟糕。您希望在生成之前签出文件之后插入版本,这就是更新挂钩所做的。 |
4
0
在像Mercurial这样的分布式系统中,实际的“版本号”在每个环境中并不一定意味着相同的东西。即使这是一个单人项目,并且您非常小心只拥有中央回购,您仍然可能希望使用sha1 sum,因为它对于给定的存储库状态是真正唯一的。sha1可以通过模板节点获取
作为一个建议,我认为更好的工作流程应该是使用标签,而在您将它们推到上游之前,这些标签也是您的存储库的本地标签。不要把你的号码写进一个文件,而是用一个有意义的标签来标记你的发布代码,比如
然后,可以将标记添加到要添加到构建中的非版本化(in.hgignore)version.num文件中。通过这种方式,您可以为发布提供有意义的名称,并将发布绑定到唯一标识符。 |
Darky · 多重定义…c++vsCode[重复] 2 年前 |
Jim Merkel · 软件包管理器如何知道在哪里安装文件 2 年前 |
franco yang · makefile中的循环main 2 年前 |
dopller · 使用cmake将仅标题库包含到我的项目时出错 2 年前 |
Andres Moreno Abrego · 为什么当BOOL_VAR为false时,Makefile表达式“export INTEGER_VAR?=$(if$(BOOL_VAR),2,5)”会导致INTEGER_VAR=2? 2 年前 |
miterhen · 发生错误后,如何继续中断编译? 6 年前 |