Sma*_*ery 19 python svn revision
我在SVN下有一个python项目,我想在运行时显示版本号.有没有办法这样做(比如在提交时自动运行一个可以更新版本文件的短脚本,或者在Python中查询SVN存储库?)
Cia*_*lty 28
我不确定Python的细节,但是如果把字符串$ Revision $放到你的文件中,你的SVN配置中有enable-auto-props = true,那么它将被重写为$ Revision:144 $ .然后,您可以在脚本中解析它.
这不会有任何开销,例如查询SVN repo,因为字符串在提交或更新时被硬编码到您的文件中.
我不确定你是如何在Python中解析它的,但在PHP中我会这样做:
$revString = '$Revision: 144$';
if(preg_match('/: ([0-9]+)\$/', $revString, $matches) {
echo 'Revision is ' . $matches[1];
}
Run Code Online (Sandbox Code Playgroud)
小智 15
类似于,但比PHP答案更加pythonic; 把它放在你的模块中__init__.py
:
__version__ = filter(str.isdigit, "$Revision: 13 $")
Run Code Online (Sandbox Code Playgroud)
并确保添加Revision属性:
svn propset svn:keywords Revision __init__.py
Run Code Online (Sandbox Code Playgroud)
小智 7
或者你可以这样做:
import re,subprocess
svn_info = subprocess.check_output("svn info")
print (re.search(ur"Revision:\s\d+", svn_info)).group()
Run Code Online (Sandbox Code Playgroud)
它打印"Revision: 2874"
在我的项目中
或者像这样:
print (subprocess.check_output("svnversion")).split(":")[0]
Run Code Online (Sandbox Code Playgroud)
它打印"2874"
在我的项目中
归档时间: |
|
查看次数: |
26675 次 |
最近记录: |