2024-03-29 07:46:32 发布
网友
与PHP答案类似,但比PHP答案稍微有点像python;将其放入模块的__init__.py:
__init__.py
__version__ = filter(str.isdigit, "$Revision: 13 $")
并确保添加修订属性:
svn propset svn:keywords Revision __init__.py
我不确定Python的细节,但是如果将字符串$Revision$放在文件的某个地方,并且在SVN配置中启用了auto props=true,那么它将被重写为$Revision:144$。然后你可以在脚本中解析这个。
有a number of property keywords you can use in this way。
这不会有任何开销,例如查询SVN repo,因为字符串在提交或更新时硬编码到您的文件中。
我不确定您将如何在Python中解析它,但在PHP中我将:
$revString = '$Revision: 144$'; if(preg_match('/: ([0-9]+)\$/', $revString, $matches) { echo 'Revision is ' . $matches[1]; }
或者你可以这样做:
import re,subprocess svn_info = subprocess.check_output("svn info") print (re.search(ur"Revision:\s\d+", svn_info)).group()
它在我的项目中打印"Revision: 2874"
"Revision: 2874"
或者像这样:
print (subprocess.check_output("svnversion")).split(":")[0]
它在我的项目中打印"2874"
"2874"
与PHP答案类似,但比PHP答案稍微有点像python;将其放入模块的
__init__.py
:并确保添加修订属性:
我不确定Python的细节,但是如果将字符串$Revision$放在文件的某个地方,并且在SVN配置中启用了auto props=true,那么它将被重写为$Revision:144$。然后你可以在脚本中解析这个。
有a number of property keywords you can use in this way。
这不会有任何开销,例如查询SVN repo,因为字符串在提交或更新时硬编码到您的文件中。
我不确定您将如何在Python中解析它,但在PHP中我将:
或者你可以这样做:
它在我的项目中打印
"Revision: 2874"
或者像这样:
它在我的项目中打印
"2874"
相关问题 更多 >
编程相关推荐