Настройка Gerrit с помощью Git-зеркала репозитория Subversion - PullRequest
7 голосов
/ 15 октября 2011

На работе мы в настоящее время используем Subversion для SCM.Я настроил локальное зеркало git-svn и использую его в качестве основного рабочего пространства для разработки.Теперь я доволен базовым функционалом.Еще один разработчик в команде также хочет перейти на Git, поэтому мы рассматриваем возможность использования git-зеркала репозитория svn.Я также хотел бы попробовать Gerrit вместе с этим упражнением.

Я представляю себе что-то вроде установки:

  1. Зеркало git для хранилища svn.Основная ветка в этом синхронизируется со стволом в SVN.

  2. Для каждой функции создается ветка темы.Это связано с Герритом, по которому происходит обзор.После того, как набор изменений утвержден, Геррит объединяет главную ветвь темы.

  3. Веб-приложение Gitweb или подобное для просмотра хранилища в браузере.

  4. Аналогичный процесс для других веток в Subversion, кроме транка.

По сути, я хочу, чтобы я взаимодействовал только с моим локальным клоном git и веб-приложением Gerrit;отправка проверенных изменений обратно в SVN должна произойти автоматическиКак мне настроить что-то подобное?

Ответы [ 2 ]

6 голосов
/ 29 октября 2011

К сожалению, невозможно сделать все это автоматически (по крайней мере, не без большой работы).Вот несколько шагов, которые могут вам помочь:

  1. Настройте свой клон git на сервере Gerrit
  2. Создайте svn hook или периодическую задачу, которая будет извлекаться из svn и нажимать наваш git clone
  3. У Gerrit есть встроенная версия gitweb, так что вы можете найти там
  4. На сервере Gerrit создайте change merged hook , который отодвинет назадto svn

Как и Грег, упомянутый выше, когда шаг 4 не пройден, все будет сложно.Вам нужно будет сбросить репозиторий git в Gerrit, чтобы он соответствовал svn, и повторно отправьте свое изменение.Это будет намного проще, если / когда вы убедите всю свою команду бросить svn и использовать git / Gerrit: -)

Удачи!

2 голосов
/ 31 июля 2012

Возможно настроить зеркало Git, которое будет синхронизировано с хранилищем SVN

Установить SubGit в ваше хранилище SVN:

$ subgit install path/to/svn/repository

Затем просто настроить доступк связанному Git-репозиторию, созданному (путь / к / svn / repository / .git) с использованием Apache или чего-либо еще.Каждый толчок к этому Git-репозиторию будет преобразован в SVN-ревизию и наоборот.

Таким образом, вы можете использовать связанный Git-репозиторий в Gerrit и для вашей команды (как если бы SVN никогда не существовало).После этого вы можете отключить SVN-репозиторий (или продолжить использовать).Чтобы остановить синхронизацию перед выключением, выполните:

$ subgit uninstall path/to/svn/repository
...