【问题标题】:Bazaar: bzrlib equivalent of "bzr info"Bazaar:bzrlib 相当于“bzr info”
【发布时间】:2012-02-03 16:07:02
【问题描述】:

我正在尝试编写一个简单的脚本来遍历目录列表,检查它们是否受 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)

也许有一种更优雅的方法可以做到这一点,在这种情况下,请随意在此处添加 cmets!

【问题讨论】:

    标签: python version-control bazaar


    【解决方案1】:

    看看以下方法:

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

    基本上,gather_location_info() 会给你信息,但 AFAICT 你需要给它一个打开的存储库、分支和工作树。

    【讨论】:

    • 好的指点,谢谢。看来我基本上必须将该位置作为存储库、分支和工作树打开,然后将其传递给gather_location_info。有点啰嗦,但它完成了工作。干杯
    猜你喜欢
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多