簡體   English   中英

如果給定存儲庫和修訂號/修訂 ID,我可以使用什么 Bzr function 來返回分支位置?

[英]What Bzr function can I use to return the Branch location if given the repository and revision # / revision ID?

如果您有一個存儲庫並且您使用 bzr qlog 從命令行打開它,則每個版本號都有一個部分返回branch: trunkbranch: xyz

如果您在命令行中使用 bzr 日志,則每個修訂號都有一個部分返回branch nick: trunkbranch nick: xyzbranch nick: yougettheidea

昵稱是昵稱的縮寫,正如我從實際讀入日志 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 對修訂模塊沒有屬性。 另外,我不知道要為None設置什么。

分支昵稱不一定指磁盤上存在的任何內容。 您可以使用bzr nick命令手動設置分支昵稱,或者它可能是創建修訂的機器上分支名稱路徑的最后一部分。

revision是由Repository.get_revision返回的 object ,而不是bzrlib.revision模塊。

所以我發現最好的方法是運行這段代碼。 它將返回“分支昵稱”

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM