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

标签 python django version-control bazaar

我有一个 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 .

关于python - 在不调用 bzr 的情况下从 Python 确定 Bazaar 版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3630893/

上一篇:Python网址下载

下一篇:Python 逻辑帮助 :

相关文章:

python - 如何在 Python 中将 Ragged Tensor 转换为 Tensor?

django - Django 中是否有与 login_required 等效的 logout_required ?

mysql - 数据库中是否有用于版本控制的通用选项?

git - 如何在 git 中本地取消跟踪几个文件

svn 说冲突,但它真的合并了 (TortoiseSVN)

python - 如何在 PySNMP 中进行单个 GETNEXT 查询

python - 如何重启Scrapy spider

python - Django:使用模型中的 FileField 将文件上传到 REST API

django - 按周、月、日分组

python 通过列表创建一个包含一行的数据框(没有 "reshape"的好方法)