在Django模板中包含Mercurial变更集ID(或修订版)的最佳方法是什么?

Mar*_*ler 3 django mercurial

我正在开发一个Django站点,并使用hg进行版本控制.我想将变更集ID嵌入到网站的页脚中,如Stackoverflow和Bitbucket在页脚中.完成此任务的最佳方法是什么?

我必须使用Mercurial api吗?有没有办法从CLI获取hg来输出修订版ID,这样我就可以在我的部署脚本中捕获它,只需在模板中包含简单的文本输出?

您使用的方法将不胜感激.谢谢

pay*_*yne 5

请参阅:KeywordPlan

在您的发布到生产过程中,使用hg id从Mercurial获取当前版本信息.您可以轻松地将其隐藏在随后包含在Django模板中的文件中.

例如,在发布时使用的任何脚本/进程中,执行以下操作:

hg id >templates/id.html
Run Code Online (Sandbox Code Playgroud)

然后在主Django模板的底部(或任何地方),添加:

Revision:  {{ include "templates/id.html" }}
Run Code Online (Sandbox Code Playgroud)

(注意:路径/目录可能会有所不同,具体取决于您在Django中配置模板路径的方式).

  • 值得指出的是@payne建议的是完全正确的,而且它不是KeywordPlan**.KeywordPlan页面说明为什么在DVCS中自动扩展关键字是一个糟糕的想法,@ payne建议在外部执行它是正确的方法. (2认同)