如何使用 bzrlib 工具箱中的“_find_parent_ids_of_revisions”函数?

How do you use '_find_parent_ids_of_revisions' function from the bzrlib toolbox?

好的,所以当我尝试使用从 linux 命令行调用它的代码时:

import bzrlib
from bzrlib.branch import Branch
from bzrlib import log
from bzrlib import repository
import sys


import argparse


parser = argparse.ArgumentParser()
parser.add_argument('-r', '--revnum', type=int, metavar='', required=True, help='Baseline revision number')
parser.add_argument('-d', '--directory',type=str, metavar='',required=True,help='Directory that repository in question is located')
args = parser.parse_args()

r1= args.revnum
d1= args.directory

print ''
print 'Directory containing repository: '+ (d1)
print ''
print ("Input revision number: %s" %(r1))
print ''

b = Branch.open (d1)

repository.Repository._find_parent_ids_of_revisions(revision_ids)

无论我用什么代替 revison_ids,我都会收到此错误消息。

must be called with Repository instance as first argument

我不知道如何使用这个 bzrlib 函数,如果我能让它实际给我一个输出,它应该能完全按照我的意愿去做。我将不胜感激任何帮助!谢谢!

您不应该使用 Repository._find_parent_ids_of_revisions - 它会在库的不同版本之间发生变化。

相反,调用 Repository.get_revision 或 Repository.get_parent_map 获取修订的父级。

您可以使用 Repository.open 调用(将路径作为参数)打开一个存储库,或者如果您已经有一个分支(就像您在本例中所做的那样),您可以使用 "repository" "Branch" 对象的属性,像这样:

b = Branch.open(d1)

revid = b.dotted_revno_to_revision((r1, ))

parent_ids = b.repository.get_revision(revid).parent_ids