Я пытаюсь написать простой скрипт, который просматривает список каталогов, проверяет, контролируются ли они версией bzr, а затем сообщает мне, каков их статус - т.е. сколько файлов было изменено, добавлено и т. Д.
Я сделал это с помощью Python API bzrlib, и он отлично работает.
Мой последний камень преткновения пытался выяснить, как добраться до ствола, из которого произошла ветвь.
Сделать это в командной строке просто:
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/....
Я хочу, чтобы последняя строка представляла собой строку, которую можно вставить в сценарий.
Заранее большое спасибо за ваше время
Приветствия
Dave
Для дальнейшего использования, для тех, кто заинтересован. Следуя подсказке в принятом ответе ниже, вот как получить информацию о bzr для использования местоположения 'd':
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)
Возможно, есть более элегантный способ сделать это, и в этом случае не стесняйтесь добавлять комментарии здесь!