2013-04-05 1 views
1

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

В настоящий момент у нас уже есть git-хранилище с некоторым кодом, зафиксированным на нем.

Я инициализируется проект следующим образом:

  1. Java -jar Геррит-полный 2.5.2.war INIT --batch -d Геррит-
  2. Просмотр Кода
  3. CD Геррит-Просмотр Кода/мерзавец
  4. мерзавец клон --mirror [email protected]: мой-repo.git

Тогда я позаботилась о создании пользователей и добавления разрешений.

Я вижу изменения, и я могу просмотреть/опубликовать их. К несчастью, самый последний «git push» (который должен исполнить Геррит) не состоится. Если я перехожу вручную в папку «gerrit-codereview/git/my-repo.git», и я выполняю «git push», все работает отлично.

Любая идея?

+0

обходной путь заключается в использовании плагин репликации [ссылка] (https://review.typo3.org/plugins/replication/Documentation/config.html) (обратите внимание на репликацию ion.jar находится на войне под WEB-INF/плагинами. –

+0

ранний ввод. возможно ли, что одно выше - единственный способ? –

ответ

2

В настоящее время Gerrit не поддерживает привязку внешних репозиториев как главного. Вы можете использовать плагин репликации (который поставляется с Gerrit), чтобы нажимать на внешние репозитории, но он не будет обрабатывать конфликты слияния, если изменения будут выполняться вверх по потоку. Это обычно запрашиваемая функция. Более подробная информация доступна на How to update gerrit repos with changes submitted directly to git?

+0

Привет, спасибо, брэд. После того, как Gerrit будет на месте, никто не будет допущен к тому, чтобы напрямую подталкивать материал к _upstream_ git, поэтому, надеюсь, мы сможем избежать конфликтов. Можно ли сказать, что даже если я инициализировал Gerrit _master_ repo как зеркало _upstream_, единственный способ на данный момент нажать на него набор изменений через плагин _replication_? –

+0

Привет, Джованни, исправьте единственный способ, которым Gerrit может нажимать изменения, - это плагин репликации (или с другими настраиваемыми скриптами). Если вам не нужно беспокоиться о конфликтах, это идеальное решение. – Brad

+0

Спасибо за ваш ответ @Brad! –

0

Лучший подход к себе заключается в следующем:

  1. Создать проект по Геррит с таким же именем, как и оригинальный
  2. мерзавец клон --mirror «проект, который вы хотите клонировать»
  3. mv «проект, который вы клонировали» .git «Ваша установка Gerrit»/git/

Вот пример. Я хочу, чтобы клонировать малина Linux Kernel и найти его как RPI/Linux проекта Геррит

  1. Создать Геррит проект RPI/Linux
  2. гт -r "ваша установка Геррит" /git/rpi/linux.git
  3. мерзавец клон --mirror [email protected]: raspberrypi/linux.git
  4. мв linux.git "ваша установка Геррит"/мерзавец/RPI/