我有一個django(Python)項目,需要知道它的代碼在Bazaar上用於部署目的的版本。這是一個Web應用程序,所以我不想這樣做,因爲它引發了一個新的子過程,並且不會擴展。從Python中確定Bazaar版本號而不調用bzr
import subprocess
subprocess.Popen(["bzr", "revno"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
有沒有辦法解析Bazaar存儲庫來計算版本號? Bazaar本身是用Python編寫的,包含了用於計算revno的代碼,這讓我認爲它不是微不足道的。
rh = self.revision_history()
revno = len(rh)
編輯:最終修復
from bzrlib.branch import BzrBranch
branch = BzrBranch.open_containing('.')[0]
revno = len(branch.revision_history())
編輯:最後的修復,但這次是真的
from bzrlib.branch import BzrBranch
branch = BzrBranch.open_containing('.')[0]
revno = branch.last_revision_info()[0]
爲什麼不使用bazaar自己的代碼? – nmichaels 2010-09-02 20:20:01
* never * * ever * *使用*'len(branch.revision_history())',只有'branch.last_revision()' – bialix 2010-09-03 08:51:46
Bialix,爲什麼? last_revision中也沒有修訂版本號。 [email protected] – 2010-09-03 14:22:05