应用程序在mercurial存储库中访问其自己的版本

zah*_*pov 3 python mercurial

我有应用程序我想从mercurial打印出来(在"about"框中)它的修订版/版本.假设它是修订版,deadbeef所以它会知道.在旧时代,CVS可以使用类似的东西$Revision$自动替换.

Mercurial的最佳做法是什么?

Sin*_*ion 5

最好的方法可能是使用precommit hook将输出替换为指定文件hg log -r tip,可能使用--templatearg以特定方式对其进行格式化.

不幸的是,有一点鸡和蛋的问题.修订版是提交数据的校验和,但校验和在提交之后才可用.一个选项可能是实际挂钩提交而不是预先提交,并在单独的变更集中提交版本信息.

  • 我通过将我的(C++)代码设置为#include一个被Mercurial忽略的文件解决了鸡/蛋问题.构建的预编译步骤生成文件(我使用`hg id`但理论是相同的)......因为它被Mercurial忽略,它不会影响变更集.只是一个想法. (2认同)