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

Обзор рабочего процесса Board для хранилища Mercurial

В моей компании мы пытаемся добавить методы проверки кода в наш процесс разработки, и для этой цели мы решили использовать Review Board.

В то время как обзорный совет должен работать из коробки для Subversion, рабочий процесс для Mercurial выглядит немного привлекательным. Во-первых, кажется, что для этого типа репо поддерживается только пост-обзор (через пост-обзор script). Во-вторых, документация неясно, поддерживает ли пост-обзор Mercurial (он упоминает только git).

Не могли бы вы описать свой рабочий процесс подробно?

Я правильно понимаю, что это должно быть примерно так:

Разработчик:

  • clone master repo
  • функция клонирования репо из локального репо-сервера
  • hack-hack в функции репо
  • фиксация в функции репо
  • каким-то образом запустить пост-рецензирование из репозитория функций в репозитории master master

Рецензент:

  • обзор diff
  • если ОК, затем перейдите к мастер-репо из функции репо
4b9b3361

Ответ 1

Мы только начали использовать Mercurial и ReviewBoard в моей компании. Мы делаем что-то похожее на ваш предлагаемый рабочий процесс, за исключением того, что мы обычно не заботимся о репозиториях функций, и мы всегда нажимаем на мастера, а не тянем от мастера.

Основная проблема, с которой вы сталкиваетесь при использовании ReviewBoard с DVCS, - это то, где вы хотите, чтобы кто-то просмотрел изменение, скажем, ревизию 2, до версии 3, оба из которых находятся в вашем локальном репо, но не у мастера, к которому имеет доступ ReviewBoard, например, потому что вы все еще ожидаете рассмотрения изменений от версии 1 до версии 2.

Решение ReviewBoard для этого - это то, что он называет "parent diffs"; это означает, что вместо того, чтобы просто загружать исправление, которое вы хотите просмотреть, вам также необходимо загрузить разницу между последней версией в мастер-репо и родительской версией вашего патча. Это позволяет ReviewBoard восстанавливать исходные файлы для левой стороны своего бокового обзора.

Текущая версия ReviewBoard не поддерживает родительские различия для Mercurial, но я представил патч, который заставляет их работать; Я считаю, что это должно быть для RC3.

Я также исправил расширение ReviewBoard, упомянутое в предыдущем сообщении, чтобы он поддерживал различия между родителями. Я сделаю их доступными после отпускания RC3.

Ответ 2

Существует расширение для mercurial для того, что вы хотите сделать:

http://blogma.de/projects/mercurial-reviewboard.html
https://www.mercurial-scm.org/wiki/ReviewboardExtension

Поток работы, который вы представляете, кажется легким, поэтому я думаю, что вы на правильном пути. Способ обработки услуг DVCS (т.е. Битбакет или github) на самом деле тот же:

commiter:
шаги 1... 4 одинаковые
5. Отправьте запрос на перенос для сопровождающего (это ваш анализ кода подходит)

Рецензент:
1. рассматривает запрос на растяжение
2. тянет

Поскольку этот подход отлично работает для вышеупомянутых служб, я не думаю, что он должен представлять вам какие-либо проблемы.

Ответ 3

Я не знаю о размере вашей команды, но пост-обзоры быстро становятся неуправляемыми, особенно в крупных командах, критически важных для безопасности проектах и ​​когда рецензенты заняты.

GitHub и Bitbucket решают эту проблему подходом, который не был жизнеспособным в эпоху предшествующих DVCS, используя так называемые тяговые запросы.

Концепция в двух словах: разработчик берет свой собственный клон, а затем просит владельца мастер-репо вытащить материал в мастер-репо. Владелец рассматривает его и может принять или отклонить, потянув его за хозяина. Это просто.

Возможно, вам захочется посмотреть Git Демонстрация рабочих процессов: что такое видеообъявление Integrator Workflow? на YouTube. Это относится и к Mercurial.

Ответ 4

Теперь есть расширение FileReview, которое интегрировано с TortoiseHg (начиная с TortoiseHg >= 0.9). Похоже, что обзоры интегрированы в репозиторий.

Это не удалось заставить работать в Windows, но я надеюсь, что это будет улучшено!