我有一个django(Python)项目,它需要知道它的代码在Bazaar上的版本,以便于部署。这是一个web应用程序,所以我不想这样做,因为它会触发一个新的子进程,而且不会扩展。在
import subprocess
subprocess.Popen(["bzr", "revno"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
有没有一种方法可以解析Bazaar存储库来计算版本号?Bazaar本身是用Python编写的,它包含了用于计算revno的代码,这让我觉得这并不简单。在
^{pr2}$编辑:最终修复
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存储库的信息。在更多示例可用here。在
相关问题 更多 >
编程相关推荐