Импортировать репозиторий из git в gerrit
У меня есть два вопроса о Gerrit:
-
Как преобразовать или импортировать уже существующий репозиторий Git в формат Gerrit? Было много коммитов без управления Gerrit, я хочу просто нажимать эти коммиты в Gerrit проект.
Я вижу два способа сделать это:
-
Скопируйте существующий голый каталог Git в Gerrit, а затем добавьте его в базу данных. Это безопасный метод?
-
Нажмите все коммиты из моего локального репозитория в репозиторий gerrit.
-
Как вернуть репозиторий из Gerrit в исходный формат Git? Требуется ли удалить специальные ветки */for/*
Gerrit для этого?
Ответы
Ответ 1
Прежде всего: нет специального "формата Gerrit". Gerrit работает с регулярными репозиториями git.
-
Создайте новый проект в Gerrit (без первоначальной фиксации). Добавьте созданный репозиторий в качестве удаленного в существующий репозиторий и просто нажмите. Вы можете настроить Gerrit, чтобы разрешить прямое нажатие в репозиторий (минуя обзор), позволяя вам импортировать весь репозиторий.
В качестве альтернативы, если у вас есть прямой доступ к местоположению репозитория Gerrit (например, через SSH или локальную файловую систему), вы можете просто нажать прямо в репозиторий (независимо от того, создан ли Gerrit), полностью обходя Gerrit. После этого вам нужно будет очистить тайники Gerrit, однако, чтобы Gerrit заметил, что HEADs хранилища обновлены.
-
Как сказано, нет "формата Gerrit". Просто клонируйте свой репозиторий от gerrit, и все хорошо. Вам не нужно беспокоиться о каких-либо специальных ветвях.
Ответ 2
Я импортировал много проектов GIT в gerrit, самый простой способ - скопировать каталог xy.git в репозиторий GIT в каталог, где gerrit откладывает репозитории GIT.
После перезапуска процесса gerrit новый проект находится в списке новых проектов, и вы можете редактировать описания и права доступа.
Ответ 3
-
Просто создайте новый проект в Gerrit, а затем нажмите репозиторий git. Если вы хотите обойти обзор, нажмите прямо на master вместо refs/for/master. Вам нужно будет добавить разрешение для этого.
Я думаю, что сообщение об ошибке может быть вызвано тем, что вы еще не импортировали свой ssh-ключ в Gerrit.
-
Просто клонируйте репозиторий от Gerrit. Он не будет включать дополнительные ветки.
Ответ 4
Дополнительная информация...
Таким образом, вы можете скопировать git-репозиторий прямо в расположение данных gerrit, и он будет отображаться после перезапуска (или очистки кэша (переиндексации)).
НО вы пропустите важную конфигурацию из вашего репозитория, что может помешать умению выдвигать, создавать ветки, просматривать и т.д.
Если вы посмотрите репозиторий, то увидите, что в нем отсутствует ветка 'refs/meta/config'. Таким образом, в обычной системе без изменений это будет наследоваться от All-Projects, но это может быть любой проект в вашей конфигурации.
Шаги, чтобы исправить конфигурацию:
- Элемент списка
- Скопируйте Git РЕПО
- Обновить кеш/перезапустить gerrit/reindex
- Открыть репо из списка проектов
- Нажмите на ветки
- Введите имя новой ветки "refs/meta/config" в редакции "HEAD"
- Нажмите "Изменить конфигурацию" в общем виде проекта.
- Это создает файл (project.config) в этой ветки для конфигурации. Добавьте некоторую конфигурацию по умолчанию, либо взятую из рабочего репозитория, либо следующим образом:
например
[access]
inheritFrom = All-Projects
- Нажмите Сохранить, затем ЗАКРЫТЬ.
- Нажмите Review (чтобы дать +2)
- Нажмите "Опубликовать", чтобы сохранить изменения в Gerrit.
Теперь вы можете использовать хранилище с разумной унаследованной конфигурацией так же, как и другие ваши проекты.