如何自动将SVN修订编号输入程序

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (11)

我在SVN下有一个python项目,我想在运行时显示版本号。有什么方法可以做到这一点(比如在提交时自动运行一个短脚本,可以更新版本文件,或者用Python查询SVN存储库)?

提问于
用户回答回答于

我不确定Python的具体内容,但是如果将字符串$revision$放入文件中,并且你已经在SVN配置中启用了-auto-props=true,那么它将被重写为$revision144$。然后,你可以在脚本中解析这一点。

这不会产生任何开销,例如查询SVN回购,因为字符串在提交或更新时被硬编码到文件中。

我不知道如何在Python中解析这一点,但在PHP中,我会这样做:

$revString = '$Revision: 144$';
if(preg_match('/: ([0-9]+)\$/', $revString, $matches) {
    echo 'Revision is ' . $matches[1];
}
用户回答回答于

类似于PHP的答案,但比PHP的答案要稍多一点;将此放在模块的__init__.py:

__version__ = filter(str.isdigit, "$Revision: 13 $")

并确保添加修订属性:

svn propset svn:keywords Revision __init__.py

扫码关注云+社区