对于我目前的研究,我想收集来自Gerrit个实例的所有已结算评论,例如来自Gerrit itself。
我的第一次尝试是通过REST API。但是,Gerrit管理员设置了limit for queries。所以我无法收集所有评论,对于大型实例来说它很慢。
会有一个工具,即Perceval,但这需要SSH访问,显然我没有。
所以我想我需要重温git。据我了解,审核中的所有审核/更改都存储在refs/changes/...
中。
所以我
git ls-remote https://gerrit.googlesource.com/gerrit | grep /changes/ | awk '{print $2;}'
列出所有头:
...
refs/changes/99/99999/3
refs/changes/99/99999/4
refs/changes/99/99999/5
refs/changes/99/99999/meta
...
然后我可以遍历这个列表。 但
git fetch https://gerrit.googlesource.com/gerrit refs/changes/99/99999/meta
不起作用。
我还尝试使用
镜像git存储库git clone --mirror https://gerrit.googlesource.com/gerrit
但这不包括changes
文件夹。
我走错了路吗?我该怎么做?当然,也欢迎全新的想法!
答案 0 :(得分:1)
不幸的是,我的方法是不可能的 - 但是。正如documentation states:
尽管正在努力消除数据库的使用 完全,并将所有元数据直接存储在git中 存储库本身。到目前为止,格里特2.2.1,所有格里特的 元数据,只迁移了项目配置元数据 超出数据库并进入每个项目的git存储库。
所以我希望将来有一个解决方案。
答案 1 :(得分:1)
这对我有用:
git fetch origin +refs/changes/*:refs/remotes/origin/changes/*
我尚未针对公共Google Gerrit实例尝试过它,但它适用于我们公司中使用的私有Gerrit实例。
也许有人觉得它有用。