Я настраиваю нашу (относительно небольшую) команду программистов для работы с контролем версий.До сих пор не было никакого контроля, и вещи были ... случайными.
Команда состоит из 6 разработчиков, 2 из которых также являются специалистами по обеспечению качества.Я много гуглил тему, и это ошеломляет!Пока единственное решение, которое я принял, это то, что мы будем использовать Mercurial.
Справочная информация: это веб-приложение, разработанное на PHP.Постоянная разработка новых функций (что означает одинаково постоянное исправление ошибок :-P) Мы начали с аутсорсинга всей веб-разработки, что означает, что наш производственный код размещен в другой компании.Таким образом, мы можем использовать Mercurial для разработки и тестирования в нашей внутренней сети, но когда он будет готов к запуску, нам нужно будет передать файлы в вашу компанию.(глупо? так оно и есть ... они также выполняют сео и другую работу для нас, поэтому руководство не собирается с ними расставаться).
Вот требования к рабочему процессу:
- Несколько программистов могут разрабатывать новые функции вместе или по отдельности.
- В то же время программист может быть вызван, чтобы исправить ошибку, а затем вернуться к любой функции, которую он разрабатывал
- Если ошибка была исправлена, мы хотим, чтобы специалист по тестированию проверил ее, а затем запустил ее как можно скорее
- Если это новая функция, он может перейти в среду тестирования, где QA проведет тщательное тестирование итогда он может быть доставлен.
Моя идея настроить это ...
- каждый программист имеет свой собственный репозиторий
- есть центральныйdev repo
- есть QA-репозиторий
Итак, программист хочет начать работу над новой функцией.он создает брах, делает свою работу, он счастлив, сливается со своей основной ветвью.Теперь он вытягивает изменения из dev, сливается, толкает в dev.
QA человек будет тянуть из dev в репозиторий QA.Поскольку многие люди могут настаивать на разработке, и мы хотим сосредоточиться на тестировании по одной новой функции за раз, MrQA может выбрать, какие наборы изменений применить (или использовать любую терминологию).тестирует фичу - работает!ftp к производству.Затем можно начать тестирование следующей функции из dev.
Для ошибок - программист сделает исправление в своем локальном репозитории, отправит его непосредственно в QA, а затем из QA оно выйдет в эфир.
Но... что, если у нас есть два QA-человека, тестирующих одновременно QA-репо (тестирующих две новые функции)?передача ftp отправит все файлы ... так что это означает, что все функции должны быть готовы к работе, и нам нужно подождать, пока они оба будут выполнены.Это является частью нашей нынешней проблемы, ожидая, пока другие разработчики протестируют что-то, прежде чем моё собственное исправление заработает ... вот почему мы хотели установить контроль над источниками ... так что теперь я в замешательстве!
ХорошоТеперь мне нужен совет.Я прочитал о наличии отдельных веток для каждой ревизии.отдельные ветки для каждой поставляемой версии.Я действительно не знаю, что думать ... можно ли использовать описанный выше рабочий процесс?Это излишне для нашей маленькой команды?Или это слишком упрощенно?Так как я продаю всех за контроль версий, я не хочу настраивать что-то, что будет проваливаться через неделю ...
Заранее спасибо, что пришли на помощь !!