如果给定存储库和修订号#/revision ID,我可以使用什么Bzr函数返回分支位置?

2024-06-17 18:42:10 发布

您现在位置:Python中文网/ 问答频道 /正文

如果您有一个存储库,并使用bzr qlog从命令行打开它,那么每个修订号都有一个部分,返回branch: trunkbranch: xyz

如果在命令行中使用bzr日志,则每个修订号都有一个部分返回branch nick: trunkbranch nick: xyzbranch nick: yougettheidea

nick是昵称的缩写,我从实际阅读日志python脚本中发现了这一点

我的想法是,由于有一些代码为每个修订提取分支位置并在日志中显示,因此我应该能够直接使用这些代码来自行返回分支位置。因此,代码将运行并返回给我trunkxyz

我想使用python和bzrlib工具箱编写这段代码

最后,我直接从bzr的log.py代码中发现了这一点

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没有revision模块的属性。我也不知道该为None设置什么


2条回答

所以我发现最好的方法就是运行这个代码。它将返回“分支昵称”

`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`

分支尼克不一定指磁盘上存在的任何东西。您可以使用bzr nick命令手动设置分支尼克,或者它可能是创建修订的机器上分支名称路径的最后一部分

revision是由Repository.get_revision返回的对象,而不是bzrlib.revision模块返回的对象

相关问题 更多 >