Подтвердить что ты не робот

Импортировать репозиторий из git в gerrit

У меня есть два вопроса о Gerrit:

  • Как преобразовать или импортировать уже существующий репозиторий Git в формат Gerrit? Было много коммитов без управления Gerrit, я хочу просто нажимать эти коммиты в Gerrit проект.

    Я вижу два способа сделать это:

    • Скопируйте существующий голый каталог Git в Gerrit, а затем добавьте его в базу данных. Это безопасный метод?

    • Нажмите все коммиты из моего локального репозитория в репозиторий gerrit.

  • Как вернуть репозиторий из Gerrit в исходный формат Git? Требуется ли удалить специальные ветки */for/* Gerrit для этого?

4b9b3361

Ответ 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, но это может быть любой проект в вашей конфигурации.

Шаги, чтобы исправить конфигурацию:

  1. Элемент списка
  2. Скопируйте Git РЕПО
  3. Обновить кеш/перезапустить gerrit/reindex
  4. Открыть репо из списка проектов
  5. Нажмите на ветки
  6. Введите имя новой ветки "refs/meta/config" в редакции "HEAD"
  7. Нажмите "Изменить конфигурацию" в общем виде проекта.
  8. Это создает файл (project.config) в этой ветки для конфигурации. Добавьте некоторую конфигурацию по умолчанию, либо взятую из рабочего репозитория, либо следующим образом:

например

[access]
   inheritFrom = All-Projects
  1. Нажмите Сохранить, затем ЗАКРЫТЬ.
  2. Нажмите Review (чтобы дать +2)
  3. Нажмите "Опубликовать", чтобы сохранить изменения в Gerrit.

Теперь вы можете использовать хранилище с разумной унаследованной конфигурацией так же, как и другие ваши проекты.