我希望我正在开发的项目的可执行文件能够记录最新的 Mercurial 变更集,以便当用户抱怨错误行为时,我可以跟踪他们正在使用的版本。我的一些可执行文件是 Python 的,其他是 C 编译的。有没有办法自动执行此操作,或者您能给我指出一些可以展示解决方案的项目吗?
我在我的项目中使用 autoconf...以防让解决方案变得更容易。
Thanks!
Setjmp
执行此操作的常用方法是使用 m4_esyscmd。例如,autoconf 在 build-aux 中分发一个脚本,该脚本从 git 存储库生成版本号并调用 AC_INIT,如下所示:
AC_INIT([GNU Autoconf], m4_esyscmd([build-aux/git-version-gen .tarball-version]),
[[email protected]])
您通常可以在不分发脚本的情况下逃脱并执行一些简单的操作,例如:
AC_INIT([Package name], m4_esyscmd([git describe --dirty | tr -d '\012']),
[bug-report-address])
使用您想要生成版本号的任何命令,而不是 git-describe。一个重要的细节是它不应该有尾随换行符(因此 tr 后面跟着 git-describe)。
此技术的一个主要缺点是版本号仅在运行 autoconf 时生成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)