2017-02-21 176 views
0

我有一个用Python编写的程序。 我将更改部署到使用SVN的用户。 在某些情况下,SVN会卡住,并且更改不会下载到用户计算机。在这种情况下,我需要手动执行SVN CLEANUP。问题是我不知道哪个站有哪个版本。所以用户继续处理导致问题的旧版本。如何比较本地和版本库SVN修订版本?

我想写一个代码,程序上的午餐将与服务器的本地SVN版本比较,如果不匹配,会出现一条消息。

我设法写它获取服务器的版本代码:

import re,subprocess 
svn_info = subprocess.check_output("svn info svn_address") 
print (re.search(ur"Revision:\s\d+", svn_info)).group() 

但我不明白我怎么得到当地修订,以便比较。

如果我去SVN本地文件夹,并做到:

svn info 

我看到当地的版本。但我不知道如何在python代码中访问这些数据。

有什么想法?

回答

1

我会建议使用,而不是试图解析外部命令自己的文本结果的“维持”蟒蛇SVN包装。看看here

+0

我不认为需要为两个整数安装一个包。打印只是为了我..它不会在代码本身....我需要一种方法来知道本地svn修订。你能帮忙吗? :) – avi

+0

是的,你是对的,这只是一个人的观点,没有必要对这样一个微小的设计问题进行无休止的争论;-)为了回答你的问题,我相信svn info(没有svn地址)给了本地修订。但现在我没有使用它,所以我可能会误解。编辑对不起,只是看到你编辑你的问题... –

+0

这是真的,svn信息给出答案,但它的作品,当我这样做manualy,因为我在正确的目录中......如果我在python中它它告诉我:svn:警告:'。'不是工作副本 – avi