Skip to main content
 首页 » 编程设计

python之在不调用 bzr 的情况下从 Python 确定 Bazaar 版本号

2025年05月04日19qq78292959

我有一个 django (Python) 项目需要知道其代码在 Bazaar 中的版本以用于部署目的。这是一个 Web 应用程序,所以我不想这样做,因为它会触发一个新的子进程并且不会扩展。

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 的 bzrlib API 获取有关任何给定 Bazaar 存储库的信息。

>>> from bzrlib.branch import BzrBranch 
>>> branch =  BzrBranch.open('.') 
>>> branch.last_revision_info() 

更多示例可用here .