Mercurial: указывает на то, что ветка прошла тестирование? - PullRequest
4 голосов
/ 18 января 2011

Я работаю над созданием рабочего процесса в моей компании, если бы нам пришлось перейти на DVCS (скорее всего, Mercurial). Одна из вещей, которую я хотел бы сделать - это иметь хранилище для QA. Идея заключается в том, что каждый разработчик работает над веткой, а когда они это делают, ветка отправляется в QA. Оттуда команда тестирования может провести тестирование и сообщить о любых ошибках. Как только ветвь будет полностью протестирована и приемлема, она будет отправлена ​​в промежуточный репозиторий, где произойдет слияние с основной линией, прежде чем она будет передана в центральный репозиторий.

Это может сработать довольно легко, если все просто так или иначе сообщат о статусе своей работы, но я знаю, что это не всегда происходит так, как вы этого хотите. Что меня беспокоит, так это то, что ветки в репозитории QA ждут, но никто не знает, ожидает ли он тестирования, в настоящее время тестируется, ждет исправлений, ждет ли его доставки в область подготовки и т. Д. Итак, я ищу идеи как можно добавить статус в ветку? Также было бы хорошо сделать это так, чтобы мы могли использовать хуки, чтобы также уведомлять людей об изменениях в статусе.

Любые идеи будут оценены.

Ответы [ 5 ]

5 голосов
/ 19 января 2011

К сожалению, я думаю, что вам нужна другая система для отслеживания этой части вашего рабочего процесса.

Хранилище состоит из вещей, которые не должны все менять, но текущий статус вопросов и ответов будетнеобходимо изменить ортогонально к содержимому хранилища.

Позвольте мне перефразировать это.У вас есть 10 наборов изменений в репозитории вопросов и ответов, готовых к тестированию.На чем конкретно сосредоточен каждый тестер, будет меняться статус каждого теста и т. Д., Даже если эти 10 наборов изменений останутся прежними.

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

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

Я бы очень сильно сопротивлялся, пытаясь заставить Mercurial обслуживать что-то, для чего он не был создан, пытаться использовать теги для этого с треском провалился бы, а закладки создавали проблемы, так какВы уже отметили.

Итак, попробуйте найти отдельную систему для отслеживания статуса вопросов и ответов.

1 голос
/ 19 января 2011

Одним из простых способов может быть сохранение файла метаданных в корневой папке вашего репозитория с именем .teststatus или что-то подобное:

# branch-name, last passed revision
default, 0123456789ab
stable, 0123456789ac
bobs-dev-branch, 0123456789ad
marys-dev-branch, none

Использование тегов или закладок может показаться здесь своего рода оскорблением. Вы не можете использовать один и тот же тег в ветвях (например, passed должно быть stable-passed), и теги обычно не перемещаются. Закладки, с другой стороны, предназначены для перемещения, но у вас все еще есть проблемы с пространством имен ветвей.

0 голосов
/ 19 января 2011

Зачем разработчику что-то выдвигать в репозиторий QA, если он не был готов к QA'd? Я думаю, что отправка наборов изменений в репозиторий, определяемый QA, должна быть сигналом того, что функция готова к тестированию.

Функция ветви путем клонирования - мой любимый подход.

0 голосов
/ 18 января 2011

Я не совсем уверен, как работает ваш рабочий процесс, но вот несколько идей:

  1. Метки .
  2. Используйте именованные ветви и закройте ветку при тестировании. Тип hg branches покажет вам, какие ветви еще ожидают.

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

0 голосов
/ 18 января 2011

Джоэл Спольски, один из основателей этого сайта, выпускает программу под названием FogBugz , которая интегрирована с Mercurial и позволяет легко отслеживать статус каждого.

...