2017-02-21 175 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