Bazaar:bzrlib中“bzr info”的等效物

4
我正在尝试编写一个简单的脚本,遍历目录列表,检查它们是否受到bzr版本控制,并告诉我它们的状态 - 即修改了多少个文件,添加了多少个文件等等。
我已经使用了bzrlib Python API完成了这个任务,效果很好。
我的最后难题是如何找到分支来源的主干。
在命令行中执行此操作很简单:
 bzr info

然而,在bzrlib中对应的是什么呢?

目前,我将位置作为工作树打开:

d = 'some directory'
wt = workingtree.WorkingTree.open(d)

我在工作中经常使用“checkout”,因此我希望有一些东西能告诉我当前实例所检出分支的位置,例如从命令行:

>bzr info dev
 Checkout (format: unnamed)
 Location:
    checkout dev: dev
 checkout of branch: bzr+ssh://bazaar.launchpad.net/....

我希望得到最后一行字符串,以便将其插入我的脚本中。
非常感谢您的时间。
谢谢,
戴夫
供有兴趣的人参考,以下是获取使用位置“d”的bzr信息的提示下接受的答案的方法。
from bzrlib import repository, branch, workingtree, info
r = repository.Repository.open(d)
b = branch.Branch.open(d)
w = workingtree.WorkingTree.open(d)

bzr_info = info.gather_location_info(r,branch=b,working=w)

也许有更优雅的方法来实现这个,如果是这样,请在此处添加注释!
1个回答

2

看一下以下方法:

bzrlib.builtins.cmd_info
bzrlib.info.show_component_info
bzrlib.info.gather_location_info

基本上 gather_location_info() 会给你信息,但据我所知,你需要提供一个已打开的存储库、分支和工作树。


好的指针,谢谢。看起来我基本上需要将位置作为存储库、分支和工作树打开,然后将其传递给gather_location_info。有点冗长,但它能完成任务。干杯 - Dave

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接