Назад | Перейти на главную страницу

Репликация от одного геррита к другому

Я хочу скопировать один проект / репозиторий с одного Геррита на другой Геррит. Моя конфигурация репликации:

[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}

проблема ушла. Геррит начинает видеть удаленное репо.