关于Gerrit replication.config配置正确性的技术咨询
关于Gerrit replication.config配置正确性的疑问
我配置了Gerrit的replication.config如下:
[remote "company-svc"] projects = dev-portal-ui url = git@gitlab.eng.company.com:/core-build/${name}.git push = +refs/heads/*:refs/heads/*
我计划通过以下命令进行镜像克隆:
cd ${GERRIT_SITE}/git git clone --mirror ssh://git@gitlab.eng.company.com/core-build/dev-portal-ui.git
在GitLab中查到的SSH URL是:
git@gitlab.eng.company.com:core-build/dev-portal-ui.git
请问我的replication.config配置是否正确?
你的配置有一处小问题,核心出在url字段的格式上:
GitLab提供的SSH简写格式是git@<host>:<namespace>/<repo>.git,冒号之后直接跟仓库的命名空间和名称,不需要额外的斜杠。而你当前配置里的url多了core-build前面的斜杠——这个多余的斜杠会让Gerrit尝试推送到一个无效的路径(相当于路径变成//core-build/dev-portal-ui.git),大概率会导致同步失败。
另外补充说明:你准备用的镜像克隆命令是没问题的,因为ssh://开头的完整SSH URL格式中,主机名之后确实需要斜杠,这和GitLab的简写SSH格式是两种合法写法,但在Gerrit的replication.config里,要和GitLab提供的简写格式匹配才能正常工作。
修正后的replication.config配置如下:
[remote "company-svc"] projects = dev-portal-ui url = git@gitlab.eng.company.com:core-build/${name}.git push = +refs/heads/*:refs/heads/*
调整后,Gerrit就能正确把dev-portal-ui项目同步到对应的GitLab仓库了。
内容的提问来源于stack exchange,提问作者Shashi Ranjan
相关产品推荐
相关产品推荐

