Какую функцию Bzr я могу использовать для возврата местоположения ветки, если указан репозиторий и номер версии / идентификатор версии? - PullRequest
0 голосов
/ 18 июня 2020

Если у вас есть репозиторий и вы открываете его из командной строки с помощью bzr qlog, есть раздел для каждого номера ревизии, который возвращает branch: trunk или branch: xyz

Если вы используете журнал bzr в командной строке есть раздел для каждого номера ревизии, который возвращает branch nick: trunk или branch nick: xyz или branch nick: yougettheidea

Псевдоним - это сокращение от псевдонима, как я обнаружил, фактически прочитав в журнале python script.

Я думаю, что, поскольку есть некоторый код, который вытаскивает местоположение ветки для каждой ревизии и отображает его в журнале, я смогу использовать это напрямую, чтобы просто вернуть местоположение ветки сам по себе. Таким образом, код запустится и вернется ко мне trunk или xyz.

Я хотел бы написать этот код, используя python и набор инструментов bzrlib.

Наконец, я нашел это в код log.py непосредственно из bzr.

branch_nick = revision.rev.properties.get('branch-nick', None) if branch_nick is not None: lines.append('branch nick: %s' % (branch_nick,))

Однако, когда я пытаюсь использовать revision.rev.properties.get('branch-nick', None), появляется сообщение об ошибке, в котором говорится, что rev не имеет атрибута для модуля ревизии. Также я бы не знал, что поставить на None.

Ответы [ 2 ]

1 голос
/ 18 июня 2020

Псевдоним ветки не обязательно относится к чему-либо, что существует на диске. Вы можете вручную установить ник ветки с помощью команды bzr nick или это может быть последняя часть пути имени ветки на машине, где была создана ревизия.

revision - возвращаемый объект Repository.get_revision, а не модулем bzrlib.revision.

0 голосов
/ 19 июня 2020

Итак, лучший способ, который я нашел для этого, - запустить этот код. Он вернет 'псевдоним ветки'

`from bzrlib.branch import Branch
r1= "revision number such as 1024"
d1= "directory containing repository"
b = Branch.open (d1)
c = b.dotted_revno_to_revision_id((r1,), _cache_reverse=False)
f = b.repository.get_revision(c).properties.get('branch-nick')`

`print f`
...