2016-03-28 176 views
2

根据Gerrit API的官方doc,如果您有特定的提交ID,则应该按项目访问提交。有没有办法从Gerrit REST API检索所有提交?

使用pygerrit一个例子:

rest.get(r'/projects/psydev-lis/commits/dab837369ab0623f5869f500c199a23fd3249b82') 

的问题是,我一直负责拉有史以来所有提交并上传到数据库中,这样它们可以进行跟踪。我们没有包含所有提交ID的数据库供我查询和遍历。有没有人有Gerrit的经验,可以帮助我找出最好的方式来完成所有提交数据的批量加载?

我遇到的另一个问题是,由于API限制,我一次只能获取500个更改,并且没有办法跟踪何时看到所有这些更改。

回答

0

我对gerrit不太了解,但不应该能够做一个正常的git clone并从那里获取提交信息(git log)?

0

我没有用pygerrit自己,但我已经使用了Java equivalent version,使您可以查询格里特项目500个变化(提交)以这种方式:

GerritRestApi.changes().query(serverURL + "project:projectName+branch:master+status:merged").get(); 

如果添加了标签& S = x其中x是要开始查看的提交数量的偏移量,如果知道项目中提交的总数,则可以遍历整个提交列表。
例如,如果您在5000个总额在提交您的格里特项目:

int offset = 4500; 
List<ChangeInfo> list = new ArrayList<>(); 
while(offset >= 0){ 
    //Gets 500 commits from the offset and adds it to a list 
    list.addAll(GerritRestApi.changes().query(serverURL + "project:projectName&S=" + offset).get()); 
    offset -= 500; 
} 

但请记住,这是从上面的链接的Java客户端实现,它不完全是语法正确。但是这可能有助于您了解如何遍历提交的一般想法。

相关问题