2016-03-28 213 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客戶端實現,它不完全是語法正確。但是這可能有助於您瞭解如何遍歷提交的一般想法。

相關問題