Я хочу скопировать один проект / репозиторий с одного Геррита на другой Геррит. Моя конфигурация репликации:
[remote "gerrit3"]
url = 192.168.1.106:29418/${name}
adminUrl = gerrit+ssh://192.168.1.106/
push = refs/*:refs/*
replicatePermissions = true
replicateHiddenProjects = true
mirror = false
projects = tests/test1
replicationDelay = 0
createMissingRepositories = true
После запуска репликации я вижу следующие сообщения в журнале репликации:
[2019-07-25 14:11:00,249] [] scheduling replication tests/test1:..all.. => 192.168.1.106:29418/tests/test1
[2019-07-25 14:11:00,251] [] scheduled tests/test1:..all.. => [f208c682] push 192.168.1.106:29418/tests/test1 to run after 0s
[2019-07-25 14:11:00,253] [f208c682] Replication to 192.168.1.106:29418/tests/test1 started...
[2019-07-25 14:11:00,463] [f208c682] Missing repository created; retry replication to 192.168.1.106:29418/tests/test1
[2019-07-25 14:12:00,465] [f208c682] Replication to 192.168.1.106:29418/tests/test1 started...
[2019-07-25 14:12:00,689] [f208c682] Missing repository created; retry replication to 192.168.1.106:29418/tests/test1
[2019-07-25 14:13:00,690] [f208c682] Replication to 192.168.1.106:29418/tests/test1 started...
[2019-07-25 14:13:00,996] [f208c682] Missing repository created; retry replication to 192.168.1.106:29418/tests/test1
Последние две строки повторяются вечно. Похоже, что исходный код Gerrit не видит удаленного репозитория, независимо от того, существует ли удаленное репо или нет. В противном случае он правильно создает пустое репо, но после этого Геррит все равно его не видит.
Проблема была в url
линия. Примеры документации показывают URL без указания протокола, но также упоминают, что url
параметр совместим с git push
синтаксис URL. После изменения url
строка к:
url = ssh://gerrit@192.168.1.106:29418/${name}
проблема ушла. Геррит начинает видеть удаленное репо.