Возможно ли, чтобы gerrit/phabricator (обзор кода) работал на одном сервере, а репозиторий git — на другом? а они синхронизированы?

Вопрос как в заголовке. Я хочу улучшить наши обзоры кода с помощью таких инструментов, как gerrit или phabricator. У нас нет доступа к серверу, на котором размещен наш git-репозиторий, но у нас есть другой сервер, на котором мы можем запустить gerrit или phabricator — зависит от того, какой из них лучше/позвольте нам делать то, что мы хотим.

Первый вопрос: возможно ли? Второе: как это сделать?


person Piotr Wach    schedule 25.10.2012    source источник
comment
Вы намереваетесь иметь возможность нажать на оба места? Геррит и другой ваш хостинг-провайдер? Если вы ограничите его Gerrit, вы можете использовать хук post-receive для зеркалирования в другой репозиторий. Я делаю это сейчас с некоторыми из моих репозиториев. Я размещаю репозитории на своем собственном сервере (для себя), но когда я нажимаю на них, они разворачиваются и подталкивают их еще на 1 или 2 места. Это работает очень хорошо. Но этот метод не поддерживает коммиты, поступающие с обоих направлений. Для этого вам придется поддерживать слияние, что также означает, что вам нужно иметь дело с конфликтами.   -  person John Szakmeister    schedule 25.10.2012
comment
Я хочу иметь возможность вносить изменения в репозиторий без проверки кода, и я также не могу гарантировать, что моя команда будет единственными людьми, вносящими изменения в репозиторий, поэтому возможно, что мы будем вносить изменения в оба места... А фабрикатор? Я использую его около месяца, и он отличается от gerrit в том смысле, что вы несете ответственность за отправку изменений после проверки кода в репозиторий, где gerrit делает это за вас.   -  person Piotr Wach    schedule 25.10.2012
comment
Я не очень разбираюсь в фабрикаторах, но похоже, что он поддерживает удаленные репозитории.   -  person John Szakmeister    schedule 25.10.2012


Ответы (2)


Phabricator не нуждается в мастер-копии репозитория. Многие установки (включая мета-установку Phabricator) в настоящее время используют его с GitHub, который не предоставляет доступ к мастеру.

Это единственный режим, в котором сейчас работает Phabricator (в настоящее время он не может управлять мастерами), поэтому просто следуйте обычным инструкциям по установке для настройки, а именно:

http://www.phabricator.com/docs/phabricator/article/Diffusion_User_Guide.html

person Evan Priestley    schedule 25.10.2012
comment
Мне нужна помощь по Фабрикатор. Я установил его на ubuntu, но не могу понять, как установить arc и другие утилиты для просмотра кода. Спасибо - person ; 06.03.2013

Если разработчики могут отправить изменения в удаленный репозиторий, чтобы Gerrit/Phabricator не узнал об изменениях, хороших вариантов нет. Проверка кода на этом этапе не совсем актуальна — разработчик может выдвинуть для проверки изменение, которое выглядит вполне допустимым, но на самом деле эти изменения вносятся в файл, который был удален или отрефакторен выше по течению.

Я не очень хорошо знаком с Phabricator, но вот несколько вариантов с Gerrit, которые могут сработать:

  1. Можете ли вы смонтировать удаленный репозиторий локально, чтобы он выглядел как локальная файловая система для Gerrit? Это было бы идеальным решением — Геррит отправит запрос в этот репозиторий и отловит любые проблемы слияния, представив их пользователю.

  2. Вы можете использовать функцию репликации Gerrit для отправки объединенных изменений в удаленный репозиторий. Если есть конфликты слияния, я не знаю, как с ними справиться.

  3. Вы можете написать хук для Gerrit, чтобы отправлять объединенные изменения в удаленный репозиторий. Это более гибко, чем # 2 - вы можете настроить хук по электронной почте при конфликтах слияния.

  4. В случае решения 2 или 3 вам нужен какой-то метод поддержания копии репозиториев Геррита в актуальном состоянии. Хук git в удаленном репозитории, который отправляется в Gerrit (в обход проверки), является лучшим вариантом. В противном случае, я думаю, вам понадобится сценарий, который будет опрашивать изменения на удаленном сервере и передавать их Герриту.

person Brad    schedule 25.10.2012
comment
Это очень полезный ответ, спасибо! Однако, похоже, я попытаюсь использовать phabricator. - person Piotr Wach; 26.10.2012